【问题标题】:Why detailViewController is not in UISplitViewController.viewControllers anymore?为什么 detailViewController 不再在 UISplitViewController.viewControllers 中了?
【发布时间】:2015-07-12 02:47:18
【问题描述】:

我使用 UISplitViewController 来构建我的应用程序。主视图控制器和详细视图控制器都是 UINavigationController,如图所示。

在master vc和detail vc的viewDidLoad()函数中,插入如下代码:

    println(self.splitViewController!.viewControllers.count)
    for vc in self.splitViewController!.viewControllers {
        println(vc.hashValue)
    }

结果是:

主 vc.viewDidLoad()

2
140692681984032
140692680836304

detaiVC.viewDidLoad()

1
140692681984032

原来detaiVC.viewDidLoad()中detailVC已经不在splitViewController.viewControllers中了。为什么?

【问题讨论】:

    标签: ios swift uinavigationcontroller uisplitviewcontroller


    【解决方案1】:

    当以紧凑的宽度运行您的应用时,splitviewcontroller 将被压缩。即var viewControllers属性只包含1个视图控制器。

    来自文档:

    拆分视图界面展开时,该属性包含两个 视图控制器;折叠时,此属性仅包含 一个视图控制器。

    https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISplitViewController_class/#//apple_ref/occ/instp/UISplitViewController/viewControllers

    【讨论】:

    • 感谢您的回复。由于只有 1 个视图控制器,我怎样才能让 masterVC 和 detailVC 都可见?
    • 您需要一个具有常规宽度的设备。即 iPad 或 iPhone 6 plus 横屏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 2011-01-10
    • 2019-04-13
    相关资源
    最近更新 更多