0

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

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

从视图中的 4 个选项卡中的任何一个开始,目标后退按钮显示“< Device”,这是我所期望的。

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

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

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

4

1 回答 1

0

根据苹果设计指南,标签栏控制器应用作应用程序中最顶层的导航。

如果有什么理由不使用它。如果您使用导航控制器,您应该为每个流程使用单独的导航控制器。您可以通过选择将控制器嵌入 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

您也可以参考关于标签栏控制器的类似问题。这主要是关于使用它(与更多无关) Stackoverflow - 标签栏控制器

回答您的问题 - 由于不同的视图层次结构,行为有所不同。更多选项卡中的 Child VC 分别嵌入 UINavigationController 到 UITabBarControllers 属性moreNavigationViewController中。

于 2017-01-13T11:44:51.833 回答