我有一个与 iOS 3.2+ 设备(iPad 和 iPhone)兼容的非常旧的应用程序。我有一个大问题使它与 iOS 7 兼容!
事实上,它早在 ARC、故事板和我们现在乐于使用的所有语法糖之前就已经写好了。而且我很难理解一些界面方向问题:
对于 iPhone,该应用程序仅在横向中可见......主 ViewController 没有问题。但是设置之一(一个带有 UITableView 的简单 ViewController)总是显示在 Portrait 中!无论我设置什么属性和编写什么方法。
在.plist
我只支持横向左右方向。在设置视图控制器中,我有这些方法:
- (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
它时,它会显示 Landscape(在viewWillAppear
,viewDidAppear
和中viewWillLayoutSubviews
)。
但最奇怪的是,状态栏在横向,在纵向视图控制器之上!!!
(当然,问题出现在设备和模拟器上)
因此,如果有人可以帮助将 ViewController 全部放回 Landscape。提前致谢!