我有一些需要整理的代码在我的viewWillDisappear:
方法中,在这个方法中,我只想在当前视图控制器返回到其父视图控制器时使用它。
- (void)viewWillDisappear:(BOOL)animated
{
if ([self isMovingFromParentViewController] || [self isBeingDismissed]) {
NSLog(@"isMovingFromParentViewController or isBeingDismissed");
// clean up
}
[super viewWillDisappear:animated];
}
视图可以通过导航控制器推送或作为模态视图控制器呈现(来自同一导航控制器)。如果它被推送,那么在弹出时(按下返回按钮),我的清理代码就会运行。如果它被呈现为模态视图控制器,然后被解除显示,代码就不会运行。
我这样解除显示:
[rootViewController dismissModalViewControllerAnimated:YES];
我的问题是:为什么在我关闭视图控制器时,isBeingDismissed
没有被设置?
UINavigationController
中弹出时(例如在折叠的UISplitViewController
中的详细视图控制器),isBeingDismissed()
会返回false
。 - bio