这应该很简单。
当我使用导航控制器从根视图选择到第二视图时,第二视图会很好地加载。第二个视图在“ viewDidLoad”中创建一个计时器,以定期调用方法“ updateData”。
也许我对这里的系统不了解,但是当我回到root并再次转到第二个视图时,我得到了一个第二个视图控制器的全新实例,它创建了一个新计时器(updateData被调用了两次)频繁)。
这是不正确的默认行为吗?如何显示第二个视图控制器的第一个实例,而不是创建一个新的实例?
持久对象不应该是视图控制器的属性并不一定是正确的。您可以为第二个控制器(在根视图控制器中)创建一个属性,并且仅在第一次按下它时实例化它。因为您有很强的指向性,所以当您返回第一个控制器时,它不会被释放,并且计时器将继续运行。
- (IBAction)goToSecondView {
if (!self.secondViewController) { // secondViewController is a strong property
self.secondViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Second"];
}
[self.navigationController pushViewController:self.secondViewController animated:YES];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句