Viewcontroller的导航栏添加在选项卡栏控制器内部的导航控制器的导航栏下方

时间:2020-02-08 21:44:50

标签: ios uinavigationcontroller uitabbarcontroller swift5 storyboard-reference

我有一个标签栏控制器,它具有一个导航控制器和一个附加的视图控制器。 由于某些未知原因,视图控制器的导航栏看起来并不总是像以前那样。而是将视图控制器的导航栏添加到导航控制器的下方。

当我在显示“标签栏控制器”之前查看嵌入在第一个导航控制器中的视图控制器时,它会按预期工作。

它应该是什么样子

enter image description here

还有这个

enter image description here

现在,当我选择标签栏控制器时,它具有一个新的导航控制器,其中嵌入了视图控制器,它看起来像这样:

enter image description here

我不希望在导航控制器提供的导航栏下方添加其他导航栏。 我希望标题和视图控制器的项目与导航控制器合并。 因此,最终结果应显示一个带有后退按钮,标题和长条按钮项(搜索图像)的行

我想念什么?

我还尝试过以编程方式添加导航项,但是似乎没有任何作用。

Project on github

我的代码

radiotap.mactime

1 个答案:

答案 0 :(得分:0)

我发现有两种方法可以解决此问题,方法是以模态方式显示标签栏控制器,或者在视图加载时隐藏标签栏控制器的导航栏。

第一个解决方案可以这样实现:

  1. 打开Main.storyboard。
  2. 在此情节提要中选择最后一个segue(可导航到Side情节提要中的一个)。
  3. 确保已选择属性检查器。现在,将种类属性更改为当前呈现,将演示文稿属性更改为全屏enter image description here

第二个解决方案可以这样实现:

  1. 通过选择文件> 新建> 文件> Cocoa Touch Class 来创建新文件,然后按Next。 / li>
  2. 的子类:更改为UITabBarController,并根据您的需要命名类。
  3. 然后在viewDidLoad()内部粘贴此navigationController?.navigationBar.isHidden = true,以隐藏当前的导航栏。
  4. 通过选择TabViewController并在 Identity Inspector 中将 Class 属性更改为您的班级名称,
  5. Side 情节提要中将您的班级分配给TabViewController。输入班级名称时,它应该自动完成。按 Enter 以确保您确认更改。

请记住在这两个解决方案中仅做一个一个。哪一个取决于您的需求。

相关问题