几个UINavigation控制器,每个选项卡一个,从我的应用程序委托出口?

这更多的是关于一个问题和我的实施的讨论,这似乎是导致问题。

我的应用程序有一个标签栏和导航控制器。 在每个选项卡中,您可以进入视图,并且标签栏将被隐藏,直到您从您的子视图中单击。

我有我的选项卡上的每个导航控制器,这些是在我的应用程序委托声明为网点,也有@class tab1navcontroller

一个典型的用途是。

 MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; [delegate.tab1NavController pushViewController:nextController animated:YES]; 

过去我还没有遇到过很多问题,我相信我抄了当时正在阅读的一本书的方法。

不过,几个月前我和一个同事讨论过,他说我应该只有一个导航控制器。

在那个时候,我尝试更换代码(如上所示),并使用self.navigationcontroller ,但这造成了问题,我不记得他们是什么,但我放弃了这些修复。

今天发生了一个错误,当这个视图被快速的推回来。 我也跑僵尸分析器的应用程序,这表明上面的代码是问题。

我相信上面的代码可能会导致泄漏。

我只是不知道什么方法是最好的,从哪里去?

正如@迪马在评论中所说,你的同事是错误的。 在我的应用程序中,我有一个tabbarController作为窗口rootViewController。 您可以将其暴露在属性或其viewController数组或单个导航控制器。 您不能在多个选项卡中重复使用导航控制器 – 每个选项卡都有一个导航控制器,或混合使用。 也就是说,在我的tabbarController中,我有4个naviationControllers和一个普通的UIViewController子类。

标签栏控制器保留所有的viewControllers,navigationControllers保留所有的viewController。 也就是说,如果你有一个“分配”types的引用到一个被取出的viewController,你会遇到问题。