作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我的 viewWillDisappear:
中有一些代码需要清理,我只想在 View 移回父 View Controller 时使用它。
- (void)viewWillDisappear:(BOOL)animated
{
if ([self isMovingFromParentViewController] || [self isBeingDismissed]) {
NSLog(@"isMovingFromParentViewController or isBeingDismissed");
// clean up
}
[super viewWillDisappear:animated];
}
View 可以以两种方式呈现:它可以由导航 Controller 推送,或者作为模态视图 Controller 呈现(来自同一个导航 Controller )。如果它被按下,然后弹出(按下后退按钮),我的清理代码就会运行。如果它呈现为模态视图 Controller ,然后关闭,则代码不会运行。
我这样驳斥:
[rootViewController dismissModalViewControllerAnimated:YES];
我的问题是:为什么当我关闭 View Controller 时 isBeingDismissed
没有设置?
最佳答案
如果这是模态导航 Controller 中第一个被关闭的 View Controller ,从 viewWillDisappear:
调用 self.isBeingDimissed()
返回 false
。
但是,由于整个导航 Controller 都被关闭了,真正起作用的是 self.navigationController?.isBeingDismissed()
,它返回 true
。
关于iphone - isBeingDismissed 未在 viewWillDisappear 中设置 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10248412/
我的 viewWillDisappear: 中有一些代码需要清理,我只想在 View 移回父 View Controller 时使用它。 - (void)viewWillDisappear:(BOOL
我是一名优秀的程序员,十分优秀!