我有一个应用,其中有超过10个ViewControllers
,并且有一个MenuViewController
由ViewControllers
触发。并MenuViewController
触发所有ViewControllers
。因此,在应用程序中,我不会解除Segue,而是继续触发segues。
方案:
它是否会产生任何副作用,如内存不足或应用程序悬挂类型? 如果我继续触发segues而不解开它们会不会很好?
有人请帮忙???
答案 0 :(得分:1)
如果您继续在导航堆栈上推送新的视图控制器而不删除以前的视图控制器,那么最终会耗尽内存。如果您永远不想回弹到以前的视图控制器,则可以在每个视图控制器中完成推送转换后删除完整的导航历史记录viewDidAppear ::
- (void)viewDidAppear {
[super viewDidAppear];
self.navigationController.viewControllers = @[self];
}
或者,您可以通过设置导航控制器的委托并实现navigationController来将此逻辑置于中心位置:didShowViewController:animated ::
- (void)navigationController:(UINavigationController *)navigationController
didShowViewController:(UIViewController *)viewController
animated:(BOOL)animated {
navigationController.viewControllers = @[navigationController.viewControllers.lastObject];
}