我确定这有一个简单的答案,但我已经到处搜索,找不到答案。似乎总有一些小的调整使它不适用于我的场景。
我有一个应用程序,其初始视图控制器设置为标签栏控制器(下图中的最左侧)。 有很多导航控制器都是从标签栏控制器中进行的(关系Segue =>视图控制器)。 每个导航控制器都连接到UIViewController。
一切都按预期工作,因为我在一个视图控制器和下一个视图控制器之间进行隔离(即使用UIButtons和TableViewCells等) 但是,无论我在应用程序中导航,我选择其中一个标签栏项目,它都会正确地分割到正确的视图控制器,但它不会列出最后一个视图控制器的标题(或者'返回&#39 ;)导航控制器内部。
我猜测它与被设置为根视图控制器的应用程序的初始视图控制器有关,但我无法弄清楚如何制作最后一个视图控制器' s名称显示在导航栏中。 我已经尝试添加一个单独的导航控制器作为初始,但是我无法连接Tab Bar而没有额外的UIViewController,它似乎无法正常运行。
非常感谢任何帮助。
我还应该提到,应用程序中有一些UIViewControllers完全由代码组成,而不是在故事板中。
答案 0 :(得分:0)
这不是导航控制器和标签栏控制器的工作方式。标签栏控制器是您的根视图控制器,但它实际上与问题无关。
这里最好的比喻是打开多个标签的网络浏览器。如果您在第一个标签页面A中的页面A然后切换到另一个标签页,则无法再次按回到页面A上。您必须为其返回第一个标签,因为标签彼此独立。
导航控制器主要用于维护用户的视图控制器导航堆栈 - 如果他点击按钮打开另一个视图控制器(通过导航控制器的推送方法),那个视图控制器就被置于导航的顶部堆。然后,您可以按" Back"删除堆栈顶部的控制器。如果切换标签,则会看到一个新的导航控制器,因此会看到一个新的堆栈。