场合
我有两个视图控制器 VC1 和 VC2 。
在 VC1 中,我需要使用 x秒 间隔连续调用选择器,直到 t秒(其中x
我正在使用NSTimer
对象来管理它。如果我在 VC1 中,则NSTimer
对象正常工作。它是在 x second 之后调用它自己的。这是我的代码
timer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(methodName) userInfo:nil repeats:YES];
我也可以通过[timer invalidate];
问题:
现在我要去 VC2 ,然后再回到 VC1 。
如何停止 VC1 中的timer
?
感谢。
答案 0 :(得分:1)
您可以停止使用中的计时器
- (void)viewDidDisappear:(BOOL)animated {
[timer invalidate]
}
答案 1 :(得分:0)
您可以使用委托来实现它。
您只需要在VC2中创建委托,然后在VC1和委托方法(在VC1中)中实现,您只需要使NSTimer
无效。
答案 2 :(得分:0)
您可以通过实施forword声明来实现此目的
@class VC1
到 VC2 并在VC1中创建一个BOOL
属性
从 VC2 推送 VC1 时设置VC1.property = true
现在在viewWillAppear方法中检查 VC1
中的这个布尔属性如果此属性为真{; 1}}并且还将invalidate timer
设置为nil
对象。
希望这可以帮助您轻松。