在我的根控制器中,如何检查是否有子控制器?

时间:2015-04-11 03:21:58

标签: ios swift model-view-controller

我的根控制器对某些子控制器执行push segues。

在我的根控制器中,我想检查是否有一个控制器在自我 之上,该子控制器的类型为&#34 ; MessageViewController"

如何在Swift中执行该检查?

1 个答案:

答案 0 :(得分:0)

self.navigationController.viewControllers.count将告诉您堆栈中有多少个控制器。如果您对上面的那个感兴趣,可以测试self.navigationController.viewControllers [1](在检查堆栈上至少有2个控制器之后)是否为MessageViewController。

    if self.navigationController!.viewControllers.count >= 2 {
        let vc = self.navigationController!.viewControllers[1] as! UIViewController
        if vc is MessageViewController {
            // do whatever
        }
    }

如果segues是模态演示文稿,您可以检查presentViewController属性是否为非零,

    if let vc = self.presentedViewController {
        if vc is MessageViewController {
            // do whatever
        }
    }else{
        println("No presented view conttoller")
    }