我有一个计时器,它将在 viewDidLoad 上初始化,并在 viewDidUnload 上释放,但我发现 viewDidUnload 神经被调用,每次将视图呈现给用户时都会调用 viewDidLoad,所以我有很多计时器同时运行......不是我想要的。
我只想在用户离开此视图时停止并释放计时器,我该怎么做?
不要在视图加载时初始化它,而是在视图中初始化它会出现并在视图中停止它会消失,这样当您导航离开时它将停止并在您返回该视图时重新启动。
我遇到了与您完全相同的问题。这是以防万一您需要的代码:
- (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;
}