1

以外の向きで最初にロードしたときに、アプリが正しくロードされないという問題がありますUIDeviceOrientationPortrait。私はすべての向きをサポートしており、最初の読み込み後はどの向きにも適切に回転できます。

また、任意の向きでアプリを閉じて再度開くこともできます。問題を引き起こしているのは初期ロードのみのようです。何が起こっているのかについてのアイデアはありますか?

問題を実証するためにどのコードを投稿すればよいかさえわかりません。ありがとう!

4

4 に答える 4

1

できるだけ早くこれを呼び出してみてください:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
于 2012-06-06T11:57:40.237 に答える
1

次の 2 つの可能性があります。

1.) 最初のビューで何か間違った設定をした。コードなしではお手伝いできません。

2.) あなたはあなたのローテーションに賭けていますUIWindowUIWindow向きを処理する方法がないため、この問題をよく知っています。私UISplitViewはあなたが上で言及したことをしていると思いますが、私を拘束しないでください。UIWindow上記の質問やviewController間の手動遷移など、多くの混乱に基づいています。これまでのところ、回避策以外の適切な修正はありません。

簡単に言えば、デバイスの向き (ステータスバーではなく) を簡単に確認し、ビューを適切な向きに回転させるだけviewWillAppearです。すべてのローテーション コードが用意されているので、それほど難しくはありません。

本当に怠惰になりたい場合[self willAnimateRotationToInterfaceOrientation:[[UIDevice currentDevice] orientation] duration:0.3]];は、ViewWillAppear. 理論的には、うまくいくはずです。

向きを取得するその他の方法については、https ://stackoverflow.com/a/3897243/581194 も参照してください。上記が機能しない場合。

于 2012-06-06T04:34:12.727 に答える
1

これを試して、

初期ロードviewDidLoad時に が呼び出されるので、からオリエンテーション メソッドを呼び出します。 viewDidLoad

コード:

[self Methodname:[UIApplication sharedApplication].statusBarOrientation];

于 2012-06-06T05:37:16.543 に答える
0

この問題は、「コンテナ」View Controller と、画面全体を占有していない追加の View Controller が画面上にあることが原因であることがわかりました。モーダル ビューを読み込むときは、コンテナーではなく、小さなビュー コントローラーの 1 つから実行していました。モーダル ビュー プレゼンテーションをコンテナーに移動すると、問題が修正されました。正しい方向に考えさせてくれてありがとう。

于 2012-06-06T12:43:42.303 に答える