我正在使用UISplitViewController构建一个通用应用程序,并以iOS 9及更高版本为目标。应用语言是Objective-C。
开始使用Xcode Master / Detail模板并以标准方式设置我的视图后,我意识到如果我一直在屏幕上保持主视图(在iPad上),包括设备处于纵向模式。然而,无论我搜索多么努力,我找不到任何东西来帮助我了解这是如何实现的。我知道这是以前使用splitViewController实现的:shouldHideViewController:inOrientation:
但是,这种方法在iOS 9中已弃用,我无法弄清楚替换它的原因以及原因。我已经查看了UISplitViewController的新委托方法,发现它们完全没有任何直观性。
我非常感谢有关替换splitViewController的一些指示:shouldHideViewController:inOrientation:以及它如何用于在iPad上始终显示主视图。
答案 0 :(得分:20)
无需专门跟踪方向更改:在纵向模式下,主屏幕和细节仍将依次显示在iPhone上,大多数iPhone仍处于横向模式。
preferredDisplayMode:.AllVisible
仅影响两个视图可以同时可见的模式。
<强>夫特强>
class SplitViewController: UISplitViewController {
override func viewDidLoad() {
super.viewDidLoad()
preferredDisplayMode = .AllVisible
}
}
<强>的OBJ-C 强>
- (void)viewDidLoad {
[super viewDidLoad];
self.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
}
iPad Portrait &amp; iPhone 6 Plus横向
答案 1 :(得分:0)
如果最近有人检查过这个话题,IOS 14 中不推荐使用 .allVisible,请使用:splitVC.preferredDisplayMode = .oneBesideSecondary
aSplitViewController.preferredDisplayMode = .oneBesideSecondary