我对iOS开发相对较新,我遇到了弹出视图控制器的问题。当按下后退按钮时,我需要从导航堆栈中弹出两个(或更多)UIViewControllers
。因为我不希望它们全部被动画,所以我首先弹出所有但是最后一个未动画然后最后一个动画,但是然后-viewWillDisappear
不会被调用仅用于最后一个。这是我的代码(这些是从超级UIViewController
调用的,其他所有代码都是从...扩展):
//popping all but last one - viewWillDisappear getting called for these
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:j] animated:NO];
//popping last one - viewWillDisappear not getting called for this one
[self.navigationController popViewControllerAnimated:YES];
//also tried this but with same result:
//[((UIViewController*)[self.navigationController.viewControllers objectAtIndex:j]).navigationController popViewControllerAnimated:YES];
有人知道我在这里做错了什么,或者你能指导我如何正确地实现我的需要吗?
答案 0 :(得分:1)
viewWillDisappear。我会想象只有顶级控制器viewWillDissappear会在做这样的事情时被调用。
另外,为什么不直接弹出所需的动画视图?
如果您在视图中显示一个nslog,您可能会发现调用相同数量的视图将会消失。
让我知道你发现了什么。希望有所帮助。