有没有办法知道一个视图控制器是-viewWillAppear
和-viewWillDisappear
之间的视图控制器生命周期的某个地方?知道何时-viewWillAppear触发,但-viewWillDisappear还没有
我问,因为我想是该死的肯定,当我的看法是不是没有在屏幕上,或即将从屏幕上消失的方法,不会触发。当视图即将从屏幕上消失时,我无法在运行时显式检查的某些对象可能被释放,也可能不会被释放,因此显然,与它们交互会导致出现message sent to deallocated instance
错误。
目前,我跟踪了BOOL
,像这样:
- (void)viewWillAppear:(BOOL)animated {
isOnScreen = YES;
[super viewWillAppear:animated];
}
- (void)willWillDisappear:(BOOL)animated {
isOnScreen = NO;
[super viewWillAppear:animated];
}
而且我的方法是这样的:
if (isOnScreen) [self doSomething];
有没有一种简单的方法来做到这一点?
大卫,你为什么要使用一个计时器来选择注释,而不是立即选择呢? – Itay 2010-08-10 23:59:19
因为注释是动画化他们的下降,意味着如果一个人立即选择一个注释,它的召唤是可见的,因为它落在地图上。看起来有点奇怪,恕我直言! – 2010-08-11 06:06:24
我同意。你可以在'mapView:didAddAnnotationViews:'中做选择 - 只需设置一个布尔值来表示它需要选择第一个布尔值,然后一旦添加它们就会被选中。 (我有类似的问题) – Itay 2010-08-11 18:23:49