[英]getting the MasterViewController from the DetailViewController in a UISplitViewController app
I have a standard SplitViewController app in Swift in Xcode 6.1.1. 我在Xcode 6.1.1中的Swift中有一个标准的SplitViewController应用程序。 It would be very convenient for my DetailViewController have a pointer to my MasterViewController. 我的DetailViewController拥有一个指向MasterViewController的指针将非常方便。 (I don't need to send notifications, but I need to pull the current statemachine from my MVC) (我不需要发送通知,但是我需要从我的MVC中提取当前状态机)
My thought was that I would use my DetailViewController viewDidLoad method to grab the MasterViewController from the SplitViewController. 我的想法是,我将使用DetailViewController的viewDidLoad方法从SplitViewController中获取MasterViewController。
In my DetailViewController:viewDidLoad I have 在我的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
When I inspect these, my tVC and tNav variables were successfully set, but my tMVC was nil. 当我检查这些时,我的tVC和tNav变量已成功设置,但我的tMVC为零。 I thought that the splitViewController.viewController[0] would give me my MasterViewController directly, but I'm getting a UINavigationController instead. 我以为splitViewController.viewController [0]会直接给我MasterViewController,但我却得到了UINavigationController。
Am I wrong/is there a better way to do this? 我错了/是否有更好的方法来做到这一点?
Found it. 找到了。
let tNav = self.splitViewController?.viewControllers[0] as? UINavigationController
if let tMVC = tNav?.topViewController as? MasterViewController {
masterViewController = tMVC
stateMachine = tMVC.stateMachine
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.