iOS 3.2 以降のデバイス (iPad と iPhone の両方) と互換性のある非常に古いアプリがあります。そして、iOS 7 と互換性を持たせるには大きな問題があります。
実際、これは、ARC、ストーリーボード、および今日私たちが喜んで遊んでいるすべての構文糖衣よりもずっと前に書かれています。そして、インターフェイスの向きの問題を理解するのに非常に苦労しています:
iPhoneの場合、アプリは横向きでのみ表示されます...メインのViewControllerには問題ありません。しかし、設定の 1 つ (UITableView を含む単純な ViewController) は常に縦向きで表示されます !!! 私が設定したプロパティと私が書いたメソッドが何であれ。
では、.plist
LandscapeLeft と Right の方向のみをサポートしています。Settings View Controller には、次のメソッドがあります。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return UIInterfaceOrientationIsLandscape(interfaceOrientation) || (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone);
}
- (BOOL) shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)?UIInterfaceOrientationMaskLandscape:UIInterfaceOrientationMaskAll;
}
しかし、私が本当に気になるのは、表示self.interfaceOrientation
すると横向き ( viewWillAppear
、viewDidAppear
およびviewWillLayoutSubviews
) と表示されることです。
しかし、最も奇妙なのは、ステータスバーが縦向きのViewControllerの上に横向きになっていることです!!!
(もちろん、問題はデバイスとシミュレータの両方に表示されます)
したがって、誰かがその ViewController をすべてランドスケープに戻すのを手伝うことができれば。前もって感謝します!