我有一个定时器,它将在viewDidLoad上初始化,并在viewDidUnload上释放,但是我发现调用了viewDidUnload神经,每次向用户呈现视图时都会调用viewDidLoad,所以我有很多定时器同时运行。 ..这不是我想要的。
我只想在用户离开此视图时停止并释放计时器,我该怎么做?
答案 0 :(得分:4)
不要在视图加载时初始化它,而是在视图中初始化它将apper并在视图中停止它将消失,这样当你离开并在你回到那个视图后重新启动时它会停止。
我遇到了同样的问题。这是代码,以防您需要它:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NSLog(@"View will appear");
myTimer = [NSTimer timerWithTimeInterval:5.0 target:self selector:@selector(pageCycler) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer: myTimer forMode: NSDefaultRunLoopMode];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSLog(@"View will dissapear");
[myTimer invalidate];
myTimer=nil;
}