2014-10-31 37 views
0

有没有一种方法来有条件地检查当前视图是否是我要推送的视图?例如,在一个事件中,我希望以编程方式推SecondViewController这样的:我该如何检查当前的ViewController是否是我要推送的ViewController?

if(someEvent == true) { 
    if(CurrentViewController != SecondViewController) { 
     // Load SecondViewController 
     navigationController?.pushViewController(secondViewController as UIViewController, animated: true) 
    } 
    else { 
     // DON'T LOAD SecondViewController 
    } 
} 

到目前为止,这一切确实是不断刷新SecondViewController和栈它在NavigationController的层次结构。如何有效比较当前视图与另一个视图是否已经加载?

非常感谢那些分享知识的人。

使用Swift更新as关键字已更改。

回答

2

检查的navigationControllervisibleViewControllerSecondViewController实例或检查例如

if(someEvent == true) { 
    if self.navigationController!.visibleViewController.isMemberOfClass(SecondViewController) { 
     // DON'T LOAD SecondViewController 

    } 
    else { 
     // Load SecondViewController 
     navigationController?.pushViewController(secondViewController as UIViewController, animated: true) 
    } 
} 
+0

这是一个非常优雅的解决问题的方法not.Use isMemberOfClass。 – VERNSTOKED 2014-11-03 16:24:27

+0

此解决方案不再适用于Swift更新。 – VERNSTOKED 2015-05-15 04:58:58

0

检查自己的类。

if (![self isKindOfClass:[SecondViewController class]]) { 
    //push SecondViewController instance 
} 
相关问题