[英]Invalidate a timer that belongs to a UIView subclass
我有一个属于UIView子类的重复计时器。
该类有一个可加载它的笔尖,而我正在使用ARC。
我想在UIView为...时使计时器无效...
我似乎无法在UIView上找到类似viewDidDisappear的方法。
还有其他方法可以拦截这种情况吗?
此刻,在ViewController弹出后,计时器将继续触发并创建NSLog
输出。
对于弹出的视图控制器:只需使用viewDidDisappear
或类似的viewDidDisappear
。 还有UINavigationControllerDelegate
可能有用。
对于视图本身 :您是否尝试过在UIView
使用willMoveToSuperview:
方法? 我尚未对此进行验证,但是从理论上讲,当将其从超级视图中删除时,视图将变为超级视图nil
。
因此,请尝试以下方法:
- (void)willMoveToSuperview:(UIView *)superview {
if (!superview) {
// cancel timers
}
}
还有一个willRemoveSubview:
方法,但是该方法将在willRemoveSubview:
视图上调用,而不是被删除。
您是否尝试过在dealloc
使其无效
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.