从Tab控制器查看更多问题

时间:2017-01-12 10:22:31

标签: ios swift xcode segue uitabcontroller

我有一个标签控制器,上面有7个标签。

我在一个名为Device的页面上。后退按钮显示“< Devices”

从视图中的4个选项卡中的任意一个进行查看,并且目标后退按钮显示“< Device”,这是我所期望的。

但是,如果我,单击“更多”选项卡并从中选择一个名为“管理”的选项卡,如果它转到另一个视图,后退按钮仍然显示“< Devices”,页面标题仍然显示“设备”。

如果我重新排序选项卡以使“管理”不在更多(它是4个可见之一),如果我直接点击选项卡,它会移动到视图,标题显示“管理”和后退按钮显示“< Device”,正如我所料。

为什么选项卡控制器“更多”菜单中的segue与可见选项卡中的seque的行为不同?

1 个答案:

答案 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中。