iPhoneアプリのレイアウトを横向きに固定する方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Extreme

iPhoneアプリのレイアウトを横向きに固定する方法

#1

投稿記事 by Extreme » 12年前

あけましておめでとうございます。

【iPhone/iPad/iPod touch プログラミングバイブル iOS5/Xcode4対応】という書籍を購入し、下記のサポートページよりサンプルファイルをダウンロードし、サンプルファイル中の【ロールプレイングゲーム】(samples > ch9 > RPG > RPG.xcodeproj)をXcodeで開きました。


http://www.socym.co.jp/support/s-795


しかし、シミュレーターで表示すると横向き固定のアプリなのですが、縦向き固定で表示されます。

シミュレーターを回転させてもずっと縦向きのままです。


コードを確認すると、RPGViewController.mにレイアウトを横向きにする下記のコードが記述されています。


//横向きに回転
- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)orientation {
return (orientation==UIInterfaceOrientationLandscapeRight||
orientation==UIInterfaceOrientationLandscapeLeft);
}



下記のサイトを参考にして解決しようと試みましたが、プロパティリストの【キー】を【Initial interface orientation】に設定する方法がどうしてもわかりません。


http://araking56.blog134.fc2.com/blog-entry-199.html


Custom iOS Target Properties の画面までは行けるのですが、Keyを新たに設定する方法が分かりません。

Xcodeのバージョンは5.0.2です。

アプリが横向き固定で表示されるよう、解決方法を教えていただきたく、お願い致します。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: iPhoneアプリのレイアウトを横向きに固定する方法

#2

投稿記事 by h2so5 » 12年前

右クリックして "Add Row" で追加できます。
xcode.jpg

Extreme

Re: iPhoneアプリのレイアウトを横向きに固定する方法

#3

投稿記事 by Extreme » 12年前

h2so5様


返信ありがとうございました。

プロパティリストの【Key】を【Initial interface orientation】に設定することはできましたが、レイアウトは横向き固定になりませんでした。


有効な解決方法はありますでしょうか?

どうかご教示いただきたく、お願い致します。


プロパティリストの画面
https://www.dropbox.com/s/jtue8bmrn40nh ... .58.24.png

シミュレーターの画面
https://www.dropbox.com/s/q6yicss4a8htn ... .04.25.png

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: iPhoneアプリのレイアウトを横向きに固定する方法

#4

投稿記事 by h2so5 » 12年前

AppDelegate.m の24行目の

コード:

[_window addSubview:_viewCtl.view];
となっている部分を

コード:

[_window setRootViewController:_viewCtl];
に書き換えてください。

参考:
https://developer.apple.com/library/ios ... index.html

Extreme

Re: iPhoneアプリのレイアウトを横向きに固定する方法

#5

投稿記事 by Extreme » 12年前

h2so5様

AppDelegate.mの書き換えで無事解決しました。

本当に有り難うございました。

ところで、参考ページについて質問があります。

僕の英語力が低いせいか、AppDelegate.mの書き換えについての説明が見当たりませんでした。

参考ページのどこにAppDelegate.mの書き換えについての説明が書かれているのでしょうか。

今後、自力で解決する力を付けるために英語のページもチェックできるようになりたいので、どうか教えていただけないでしょうか?

よろしくお願い致します。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: iPhoneアプリのレイアウトを横向きに固定する方法

#6

投稿記事 by h2so5 » 12年前

AppDelegate.mを書き換えるとは直接は書いていません。
ヒントになるのは初めの方にあるこの部分です。
Developers are discouraged from adding the view property of any view controller as a subview of UIWindow. Your application's root view controller should be assigned to the app window's rootViewController property either in Interface Builder, or at runtime before returning from application:didFinishLaunchingWithOptions:. If you need to display content from more than one view controller simultaneously, you should define your own container view controller and use it as the root view controller. See Creating Custom Container View Controllers.
開発者がビューコントローラーのviewプロパティをUIWindowのサブビューとして追加することは推奨されません。
Interface Builder、もしくは実行時にapplication:didFinishLaunchingWithOptions:からリターンする前に、アプリケーションのルートビューコントローラーをアプリケーションウィンドウのrootViewControllerプロパティに設定するべきです。もし同時に2つ以上のビューコントローラーでコンテンツを表示したい場合は、独自のコンテナとなるビューコントローラーを定義し、それをルートビューコントローラーとして使用してください。
Beginning with iOS 6, if a root view controller has not been assigned to the app's window, supported orientations are determined only by the UIApplication object. Further, view controllers will not be notified of orientation changes, which may result in unexpected behavior.
iOS6から、ルートビューコントローラーがアプリケーションウィンドウに設定されていない場合は、UIApplicationオブジェクトのみが対応している画面の向きを判断するようになります。さらに、ビューコントローラーに向きの変更が通知されないため、予期しない動作を引き起こすかもしれません。

AppDelegate.mに「推奨されない」コードが書かれていたのでそれを修正しただけです。

Extreme

Re: iPhoneアプリのレイアウトを横向きに固定する方法

#7

投稿記事 by Extreme » 12年前

h2so5様


とても丁寧に教えてくださり、ありがとうございました。

もっと基礎を勉強するようにします。

本当にありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る