我正在开发一个基于 map 的应用程序。因此,一旦用户打开 MapViewController
,我就会每 5 秒加载一些数据。
我正在使用导航 Controller (推送 View Controller )。
所以每次当用户转到 MapViewController
viewdidload
方法调用时。我不想那样。
这就是为什么我试图避免像 tabbarcontroller
这样的 viewdidload
方法。
有什么办法可以实现吗?
最佳答案
viewDidLoad
被调用是因为当您将 MapViewController
从导航 Controller 的顶部弹出时,它正在被释放。当您重新创建 View Controller 时,它会重新分配,并且 View 会再次加载。如果您在包含导航 Controller 的类中保留对 MapViewController
的引用,则 ARC 不会释放该对象,您可以使用此引用将其推回堆栈,以便 viewDidLoad
不会再被调用。
编辑:添加引用代码:
MapViewContoller *mapViewController; // declared globally so there's a strong reference.
- (void) openMapViewController {
if (!mapViewController) {
mapViewController = [self.storyboard instantiateViewControllerWithIdentifier: MapViewControllerID];
}
[self.navigationController pushViewController: mapViewController, animated: YES];
}
关于ios - 有什么办法可以避免像tabbarcontroller那样调用viewdidload方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40924796/