如何在不使用 BOOL 变量的情况下检查 ViewController 是否被弹出或推送?是否有任何内置方法可以告诉它是弹出还是推送?
问问题
2834 次
3 回答
2
if (self.navigationController != nil) {
// You can POP
}
或获取所有视图。
NSArray* views = [myNavigationController viewControllers];
[views objectAtIndex:0] //will be the Root
并且可以检查当前是否为 Root 或不喜欢
if(self == [views objectAtIndex:0])
//是的,它是根
于 2013-05-15T10:28:36.870 回答
2
对于以下内容,请注意:您需要具有相同的实例toCheckController
才能获得正确的结果
NSArray* views = [myNavigationController viewControllers];
[views containsObject: toCheckController];//will return you yes/no
这将告诉您它是否已被推送。如果这返回 NO,则您无法判断视图是被弹出还是从未被推送。
于 2013-05-15T10:36:30.440 回答
0
UIViewController
有一个名为 的属性isMovingToParentViewController
。你可以在你的viewDidAppear
orviewWillAppear
方法中调用它。如果 vc 被推送,它是true
,如果它被弹出,它是false
.
这是一个类似的答案: iOS 如何在弹出顶视图控制器时以编程方式检测?
编辑:(仅适用于 iOS 5 及更高版本)
于 2013-05-15T10:39:42.900 回答