我在视图控制器中有一个NSTimer,它在用户按下按钮时开始计数。它倒数秒钟3分钟。我想要的是,如果用户想要返回上一页(可能是另一页)并回到此计时器页面,他/她应该看到计数计时器标签。我的意思是,我知道计时器继续计数但是当我再次加载这个页面时,我离开时看不到它的标签。此外,我检查我的计时器,并得到它不被视为“有效”。
我不想为此目的使用AppDelegate,因为我有很多视图控制器,而且这个并不重要。那么,我该如何实现这个连续计时器标签呢?我应该使用静态计时器还是标志?
谢谢。
答案 0 :(得分:1)
static int counter = 0 ;
通过在NSTimer中使用选择器方法并使用该计数器继续计数
[NSTimer scheduledTimerWithTimeInterval:180.0f
target:self
selector:@selector(updateTime:)
userInfo:nil
repeats:YES];
// Implement Method
-(void)updateTime: (NSTimer *) timer {
counter++;
self.label.text = counter;
}
答案 1 :(得分:0)
使计时器静止可能会引入令人讨厌的内存问题,因为它持有对目标的引用。
但是因为那对你来说已经没问题了,这是一个很好的方法。更好的是:为你的计时器创建一个单例对象,它封装了NSTimer
及其计算的值。这样,您的视图控制器可以在值上使用KVO,否则完全独立于计时器。