以外の向きで最初にロードしたときに、アプリが正しくロードされないという問題がありますUIDeviceOrientationPortrait
。私はすべての向きをサポートしており、最初の読み込み後はどの向きにも適切に回転できます。
また、任意の向きでアプリを閉じて再度開くこともできます。問題を引き起こしているのは初期ロードのみのようです。何が起こっているのかについてのアイデアはありますか?
問題を実証するためにどのコードを投稿すればよいかさえわかりません。ありがとう!
以外の向きで最初にロードしたときに、アプリが正しくロードされないという問題がありますUIDeviceOrientationPortrait
。私はすべての向きをサポートしており、最初の読み込み後はどの向きにも適切に回転できます。
また、任意の向きでアプリを閉じて再度開くこともできます。問題を引き起こしているのは初期ロードのみのようです。何が起こっているのかについてのアイデアはありますか?
問題を実証するためにどのコードを投稿すればよいかさえわかりません。ありがとう!
できるだけ早くこれを呼び出してみてください:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
次の 2 つの可能性があります。
1.) 最初のビューで何か間違った設定をした。コードなしではお手伝いできません。
2.) あなたはあなたのローテーションに賭けていますUIWindow
。UIWindow
向きを処理する方法がないため、この問題をよく知っています。私UISplitView
はあなたが上で言及したことをしていると思いますが、私を拘束しないでください。UIWindow
上記の質問やviewController間の手動遷移など、多くの混乱に基づいています。これまでのところ、回避策以外の適切な修正はありません。
簡単に言えば、デバイスの向き (ステータスバーではなく) を簡単に確認し、ビューを適切な向きに回転させるだけviewWillAppear
です。すべてのローテーション コードが用意されているので、それほど難しくはありません。
本当に怠惰になりたい場合[self willAnimateRotationToInterfaceOrientation:[[UIDevice currentDevice] orientation] duration:0.3]];
は、ViewWillAppear
. 理論的には、うまくいくはずです。
向きを取得するその他の方法については、https ://stackoverflow.com/a/3897243/581194 も参照してください。上記が機能しない場合。
これを試して、
初期ロードviewDidLoad
時に が呼び出されるので、からオリエンテーション メソッドを呼び出します。
viewDidLoad
コード:
[self Methodname:[UIApplication sharedApplication].statusBarOrientation];
この問題は、「コンテナ」View Controller と、画面全体を占有していない追加の View Controller が画面上にあることが原因であることがわかりました。モーダル ビューを読み込むときは、コンテナーではなく、小さなビュー コントローラーの 1 つから実行していました。モーダル ビュー プレゼンテーションをコンテナーに移動すると、問題が修正されました。正しい方向に考えさせてくれてありがとう。