バージョンios5+をサポートするアプリストアにあるアプリがあります。このアプリをストアにデプロイしたとき、ベースSDKは5.0に設定され、デプロイターゲットはios5.0でした。現在、iOS5および6デバイスで正常に動作しています。
その後、IDEをios 6.0にアップグレードしました。ベースSDKは6.0で、展開ターゲットは5.0です。ただし、6.0シミュレーターまたはデバイスでこのアプリを実行すると、メッセージが減価償却されるため、自動回転の問題が発生します。
- 展開ターゲットが5.0の場合、これらの問題が発生するのはなぜですか?iOS6を使用したくありません。
- ベースSDKを5.0に設定できないのはなぜですか?
更新: これは私のコントローラーが現在どのように見えるかです。残念ながら、preferredInterfaceOrientationは、方向が変わるたびに呼び出されるのではなく、一度だけ呼び出されます。このメソッドでビューを操作するので、これは私には適していません。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
[self layoutHomeViewButtons:toInterfaceOrientation];
return YES;
}
- (BOOL)shouldAutorotate
{
return YES;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeRight;
}
- (NSUInteger)supportedInterfaceOrientations
{
[self layoutHomeViewButtons:[self getInterfaceOrientation]];
return UIInterfaceOrientationMaskAll;
}
更新2: supportInterfaceOrientationsメソッドを取得する方法を理解しました。MainWindow.xibには、ウィンドウのルートビューコントローラーとして設定されたnavigationcontrollerがあります。このナビゲーションコントローラーのサブアイテムとして、上記のコードが存在するホームビューコントローラーがあります。
ウィンドウのrootviewcontrollerがhomeviewcontrollerになるようにこのリンクを変更すると、メソッドが呼び出されます。ただし、UIにはこのナビゲーションコントローラーが必要です。