从UISplitViewController应用程序中的DetailViewController获取MasterViewController

时间:2014-11-26 14:17:57

标签: ios swift uisplitviewcontroller

我在Xcode 6.1.1中的Swift中有一个标准的SplitViewController应用程序。我的DetailViewController有一个指向我的MasterViewController的指针非常方便。 (我不需要发送通知,但我需要从我的MVC中提取当前的状态机)

我的想法是我会使用我的DetailViewController viewDidLoad方法从SplitViewController中获取MasterViewController。

在我的DetailViewController中:viewDidLoad我有

(snip)

    let tVC = self.splitViewController?.viewControllers[0] as? UIViewController
    let tNav = self.splitViewController?.viewControllers[0] as? UINavigationController
    let tMVC = self.splitViewController?.viewControllers[0] as? MasterViewController

当我检查这些时,我的tVC和tNav变量已成功设置,但我的tMVC为零。我认为splitViewController.viewController [0]会直接给我我的MasterViewController,但我得到了一个UINavigationController。

我错了/有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

找到它。

let tNav = self.splitViewController?.viewControllers[0] as? UINavigationController
if let tMVC = tNav?.topViewController as? MasterViewController {
        masterViewController = tMVC
        stateMachine = tMVC.stateMachine
    }