我有一个属于UIView子类的重复计时器。
该类有一个加载它的笔尖,我正在使用ARC。
当UIView是......时,我想使计时器无效。
我似乎无法在UIView上找到类似viewDidDisappear的方法。
有没有其他方法来拦截这个?
目前,在弹出ViewController后,计时器会继续触发并创建NSLog
输出。
答案 0 :(得分:5)
对于要弹出的视图控制器:只需使用viewDidDisappear
或类似名称。还有UINavigationControllerDelegate
可能有用。
对于视图本身:您是否尝试在willMoveToSuperview:
中使用UIView
方法?我还没有验证这一点,但理论上,当视图从超级视图中删除时,视图将转移到超级视图nil
。
请在您的视图中尝试以下操作:
- (void)willMoveToSuperview:(UIView *)superview {
if (!superview) {
// cancel timers
}
}
还有一个willRemoveSubview:
方法,但是会在superview上调用,而不是删除视图。
答案 1 :(得分:0)
您是否尝试在dealloc