簡體   English   中英

在UISplitViewController應用程序中從DetailViewController獲取MasterViewController

[英]getting the MasterViewController from the DetailViewController in a UISplitViewController app

我在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。

我錯了/是否有更好的方法來做到這一點?

找到了。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM