Ios 如何在不使用BOOL变量的情况下检查ViewController是否弹出或按下?

Ios 如何在不使用BOOL变量的情况下检查ViewController是否弹出或按下?,ios,Ios,如何在不使用BOOL变量的情况下检查ViewController是否弹出或按下?是否有任何内置方法可以告诉用户它是被弹出还是被推送 if (self.navigationController != nil) { // You can POP } 或者获取所有视图 NSArray* views = [myNavigationController viewControllers]; [views objectAtIndex:0] //will be the Root 并且可以检查电流是

如何在不使用BOOL变量的情况下检查ViewController是否弹出或按下?是否有任何内置方法可以告诉用户它是被弹出还是被推送

if (self.navigationController != nil) {
    // You can POP
}
或者获取所有视图

NSArray* views = [myNavigationController viewControllers];
 [views objectAtIndex:0] //will be the Root
并且可以检查电流是否为根

ifself==[视图对象索引:0]
//是的,它是Root

对于以下内容,请注意:您需要具有相同的toCheckController实例才能获得正确的结果

NSArray* views = [myNavigationController viewControllers];

[views containsObject: toCheckController];//will return you yes/no
这将告诉您它是否已被推送。如果返回“否”,则无法判断视图是否已弹出或从未推送过。

UIViewController有一个名为isMovingToParentViewController的属性。您可以在ViewDidDisplay或ViewWillDisplay方法中调用此函数。如果vc被推送,它是真的,如果它被弹出,它是假的

下面是一个类似的答案:


编辑:仅在iOS 5及更高版本中可用

您能试着解释一下这个问题吗?你到底想做什么?您是说UIViewController在UINavigationController中被推送和弹出吗?我想为导航控制器设置动画,为此,我需要检查视图在显示时是否被推送或弹出。。。因此,在此基础上,我可以添加不同类型的动画…@ParvezBelim我的答案有什么问题,为什么否决投票?否决投票人谢谢,但请写评论?请评论我答案中的错误。为什么要投否决票?是的,它在少数情况下有效,但并非在所有情况下都有效。。。我还尝试了另一种方法,即:BOOLisBeingPresented NS\u AVAILABLE\u IOS5\u 0;-boolisbeingns\u可用\u IOS5\u 0;但这也不起作用。。。因为要使用它,我们必须把这个函数放在视图中,它将消失。。。我把动画代码放在视图中,将另一个视图控件的apear方法。。。因此,在消失后,另一个视图的视图将被调用…因此在我的情况下不起作用…但这是正确的解决方案…我最终使用布尔来解决问题…Thanx Tobi