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

问题描述 投票:0回答:1

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

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

它应该是什么样子

enter image description here

还有这个

enter image description here

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

enter image description here

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

我想念什么?

我也尝试过以编程方式添加导航项,但似乎没有任何效果。

Project on github

我的代码

    //
//  SideViewController.swift
//  Sample
//
//  Created by  on 08.02.20.
//  Copyright © 2020 . All rights reserved.
//

import UIKit

class SideViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        title = "Search"

    }
    @objc func action(){

    }

    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.
        // Pass the selected object to the new view controller.
    }
    */

}
ios uinavigationcontroller uitabbarcontroller swift5 storyboard-reference
1个回答
0
投票

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

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

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

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

  1. 通过选择文件> 新建> 文件> 可可触摸类别创建新文件,然后按下一步。
  2. Subclass of:
  3. 更改为UITabBarController并将您的类命名为对您有意义的任何名称。
  4. 然后在viewDidLoad()的内部粘贴此navigationController?.navigationBar.isHidden = true以隐藏当前的导航栏。
  5. 通过选择TabViewController并在
  6. Identity Inspector
  7. 中将Class属性更改为您的类名称,来将您的类分配给Side故事板上的TabViewController。输入班级名称时,它应该自动完成。按Enter以确保您确认更改。

    记住仅使这两个解决方案中的[[one

]。哪一个取决于您的需求。
© www.soinside.com 2019 - 2024. All rights reserved.