解开影响应用程序的Segue?

时间:2015-11-25 12:45:56

标签: ios uistoryboardsegue

我有一个应用,其中有超过10个ViewControllers,并且有一个MenuViewControllerViewControllers触发。并MenuViewController触发所有ViewControllers。因此,在应用程序中,我不会解除Segue,而是继续触发segues。

方案:

Please Click the Link

它是否会产生任何副作用,如内存不足或应用程序悬挂类型? 如果我继续触发segues而不解开它们会不会很好?

问题2是

当我触发

  

VC1MenuVC

     

menuVCVC1

     

VC1MENUVC

     

menuVCVC1

现在我将从vc1触发一个segue到vc2 segue打开两次,因为Segue树中有两个vc1 它的问题

有人请帮忙???

我的故事板图片

1 个答案:

答案 0 :(得分:1)

如果您继续在导航堆栈上推送新的视图控制器而不删除以前的视图控制器,则最终会耗尽内存。如果您永远不想回弹到以前的视图控制器,则可以在每个视图控制器viewDidAppear:中完成推送转换后删除完整的导航历史记录:

- (void)viewDidAppear {
    [super viewDidAppear];
    self.navigationController.viewControllers = @[self];
}

或者,您可以通过设置导航控制器delegate并实施navigationController:didShowViewController:animated:将此逻辑置于中心位置:

- (void)navigationController:(UINavigationController *)navigationController
       didShowViewController:(UIViewController *)viewController
                    animated:(BOOL)animated {
    navigationController.viewControllers = @[navigationController.viewControllers.lastObject];
}

E.g。您的应用代理可以是导航控制器的delegate