我在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。
我错了/有更好的方法吗?
答案 0 :(得分:1)
找到它。
let tNav = self.splitViewController?.viewControllers[0] as? UINavigationController
if let tMVC = tNav?.topViewController as? MasterViewController {
masterViewController = tMVC
stateMachine = tMVC.stateMachine
}