我有一些代码需要清理viewWillDisappear:
,我只想在视图移回父视图控制器时使用它。
- (void)viewWillDisappear:(BOOL)animated
{
if ([self isMovingFromParentViewController] || [self isBeingDismissed]) {
NSLog(@"isMovingFromParentViewController or isBeingDismissed");
// clean up
}
[super viewWillDisappear:animated];
}
视图可以通过两种方式呈现:它可以由导航控制器推送,或者呈现为模态视图控制器(来自同一导航控制器)。如果它被推入,然后弹出(按后退按钮),我的清理代码就会运行。如果它呈现为模态视图控制器,然后关闭,则代码不会运行。
我这样驳回:
[rootViewController dismissModalViewControllerAnimated:YES];
我的问题是:为什么不isBeingDismissed
当我关闭视图控制器时设置?
如果这是正在被关闭的模态导航控制器中的第一个视图控制器,则调用self.isBeingDimissed()
from viewWillDisappear:
回报false
.
然而,由于整个导航控制器都被忽略了,所以真正起作用的是self.navigationController?.isBeingDismissed()
,返回true
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)