Objective c UIARBARCONTROLLER/UINavigationController Hybrid

Objective c UIARBARCONTROLLER/UINavigationController Hybrid,objective-c,ios,uinavigationcontroller,uitabbarcontroller,viewstack,Objective C,Ios,Uinavigationcontroller,Uitabbarcontroller,Viewstack,很可能我遗漏了一些明显的东西,但我有一个非常简单的要求,这两个似乎都不满足 我有一个具有3个不同视图的应用程序,但是由于我不在这里讨论的原因,视图可能有效,也可能无效,这取决于在其他视图中执行的操作,使用持久性选项卡作为导航将不起作用。我还希望根据需要创建每个视图,并且UITabBarController预先创建其所有视图。然而,我仍然想要UIAbbarController的一些功能——能够在UIViewController数组中传递它 UINavigationController提供了让它根据

很可能我遗漏了一些明显的东西,但我有一个非常简单的要求,这两个似乎都不满足

我有一个具有3个不同视图的应用程序,但是由于我不在这里讨论的原因,视图可能有效,也可能无效,这取决于在其他视图中执行的操作,使用持久性选项卡作为导航将不起作用。我还希望根据需要创建每个视图,并且UITabBarController预先创建其所有视图。然而,我仍然想要UIAbbarController的一些功能——能够在UIViewController数组中传递它

UINavigationController提供了让它根据需要创建视图的机会,但我无法预先将视图列表传递给它,因此我最终使用ViewControllers创建并推送其他同级ViewControllers,这很糟糕

以下是我的要求:

我希望能够提前添加ViewController 我希望能够在视图控制器之间导航 我希望根据需要创建每个ViewController,并在导航到其他位置时将其销毁
是否有符合要求的内容?

我将使用AppDelegate预先创建ViewController的哈希并创建导航控制器。
单击按钮导航到新的viewcontroller后,可以转到哈希并查找该特定的视图控制器。如果没有创建,您可以在那里创建。如果要销毁该视图控制器,只需将其释放并从哈希中删除。

这是否意味着其他视图的外观取决于您在初始化它们之前在活动视图中所做的操作?基本上。共有3个视图,但只有在视图1中执行某些操作后才能访问视图2,并且视图3可以从视图2访问,也可以从视图1访问,具体取决于在视图1和2中执行的操作。本质上,选项卡的隐喻是不起作用的,因为视图不是一直都可以访问的,只有使用替代UI从view1到view3才有意义。这就是导航控制器的用途。您应该跳过选项卡或在第一视图中直观地表示它们,然后使用导航控制器。这并不能解决要求1。除非创建控制器是非常昂贵的操作,否则我不认为在运行中创建控制器可能是一个问题。