我有一个标签控制器,上面有7个标签。
我在一个名为Device的页面上。后退按钮显示“< Devices”
从视图中的4个选项卡中的任意一个进行查看,并且目标后退按钮显示“< Device”,这是我所期望的。
但是,如果我,单击“更多”选项卡并从中选择一个名为“管理”的选项卡,如果它转到另一个视图,后退按钮仍然显示“< Devices”,页面标题仍然显示“设备”。
如果我重新排序选项卡以使“管理”不在更多(它是4个可见之一),如果我直接点击选项卡,它会移动到视图,标题显示“管理”和后退按钮显示“< Device”,正如我所料。
为什么选项卡控制器“更多”菜单中的segue与可见选项卡中的seque的行为不同?
答案 0 :(得分:0)
根据Apple设计指南,标签栏控件应该用作应用中最顶层的导航。
如果有某些原因不使用它。 如果您使用的是导航控制器,则应为每个流使用单独的导航控制器。 您可以通过选择
将控制器嵌入到UINavigationController中编辑 - >嵌入 - > UINavigationController的
如果您的设置为TabBarController -> ChildViewController [Each of these embedded in UINavigationController]
,则表现正常
但至于你的描述,设置可能是
UINavigationController -> UIViewController (title "Devices") -> UITabBarController -> ChildViewController
MORE
标签是特定的。
请参阅tabbarController.moreNavigationController
您在“管理”标签中看不到标题的原因是视图层次结构不同。 正如您未提及如何将标题设置为navigationItem。有两种可能性。
在Manage VC viewDidAppear方法
中调用以下代码段self.tabBarController?.navigationItem.title
您还可以参考有关标签栏控制器的类似问题。 这主要是关于使用它(与MORE无关) Stackoverflow - Tab bar controller
回答你的问题 -
由于视图层次结构不同,行为也不同。 “更多”选项卡中的子VC分别嵌入到UITavigationController属性moreNavigationViewController
的UINavigationController中。