UISplitViewController始终在iPad纵向模式iOS 9中显示主视图

时间:2016-02-16 18:22:01

标签: ios objective-c ipad ios9 uisplitviewcontroller

我正在使用UISplitViewController构建一个通用应用程序,并以iOS 9及更高版本为目标。应用语言是Objective-C。

开始使用Xcode Master / Detail模板并以标准方式设置我的视图后,我意识到如果我一直在屏幕上保持主视图(在iPad上),包括设备处于纵向模式。然而,无论我搜索多么努力,我找不到任何东西来帮助我了解这是如何实现的。我知道这是以前使用splitViewController实现的:shouldHideViewController:inOrientation:

但是,这种方法在iOS 9中已弃用,我无法弄清楚替换它的原因以及原因。我已经查看了UISplitViewController的新委托方法,发现它们完全没有任何直观性。

我非常感谢有关替换splitViewController的一些指示:shouldHideViewController:inOrientation:以及它如何用于在iPad上始终显示主视图。

2 个答案:

答案 0 :(得分:20)

子类UISplitViewController

无需专门跟踪方向更改:在纵向模式下,主屏幕和细节仍将依次显示在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横向

enter image description here

答案 1 :(得分:0)

如果最近有人检查过这个话题,IOS 14 中不推荐使用 .allVisible,请使用:splitVC.preferredDisplayMode = .oneBesideSecondary

aSplitViewController.preferredDisplayMode = .oneBesideSecondary