为啥导航栏中没有显示标题?斯威夫特 3

Posted

技术标签:

【中文标题】为啥导航栏中没有显示标题?斯威夫特 3【英文标题】:Why is title not showing in Navigation bar? Swift 3为什么导航栏中没有显示标题?斯威夫特 3 【发布时间】:2017-06-06 12:37:56 【问题描述】:

DetailViewControllerRootController1 中的标题不显示。同样,当在DetailViewController 中按下后退按钮时,它会弹出到RearTV,而不是弹出到RootController1。谁能告诉我如何自定义 UIViewControllers 上显示的导航栏的标题?

    初始 ViewController 的类型为 SWRevealViewController

    从 SWRevealViewController 到 NavigationController 的自定义 segue

    从导航控制器到 RearTV(一个带有多个按钮的静态单元格的 UITableViewController)存在“根视图控制器到 RearTV”的关系

    从 RearTV 上的一个按钮到 VC2(一个 UIViewController 上面放置了一个嵌入容器视图)有一个“显示”到 VC2 的 segue

    从 VC2 中的容器视图中,有一个嵌入 Segue 到“拆分视图控制器”

5.1 从拆分视图控制器到导航控制器(右侧)存在“主视图控制器到导航控制器”的关系

5.1.2 从导航控制器(右侧)到根控制器存在“根视图控制器到根控制器1”的关系

5.1.3 从根控制器(名为“Root Controller1”)到导航控制器(“下面的那个)有一个“showDetail1 到导航控制器”

5.2 从拆分视图控制器到导航控制器(“下面的那个)”存在“详细视图控制器到导航控制器”的关系

    从导航控制器(“下面的那个)到细节视图控制器有一个segue“根视图控制器到细节视图控制器”。

在 RootController1 和 DetailViewController 中我都试图显示一个标题,但它什么也没显示。

//centers the title of the navigation bar in all view controllers
struct CustomNavBar 
static func center(title: String) -> UILabel 
    let titleLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
    titleLabel.text = title
    titleLabel.adjustsFontSizeToFitWidth = true
    titleLabel.textAlignment = NSTextAlignment.center
    return titleLabel
  


  override func viewDidLoad() 
      super.viewDidLoad()

     //attempt 1 to customize title of navigation bar
     self.navigationController?.navigationItem.titleView =  CustomNavBar.center(title: "some title")

     //attempt 2 to customize title of navigation bar
           self.navigationItem.titleView =  CustomNavBar.center(title: "some title")

//firstImage

//secondImage

//thirdImage

【问题讨论】:

【参考方案1】:

尝试在您的视图控制器中输入以下内容:

self.navigationController?.navigationBar.topItem?.titleView = CustomNavBar.left(title: "some title")

相对于:

self.navigationController?.navigationItem.titleView =  CustomNavBar.center(title: "some title")

这仅在我将结构包含在控制器中时才有效。

【讨论】:

@bibscy 您将这行代码添加到哪些文件以及在哪里?它应该在你想要这个标题的控制器的 viewDidLoad() 函数中。

以上是关于为啥导航栏中没有显示标题?斯威夫特 3的主要内容,如果未能解决你的问题,请参考以下文章

为啥导航栏后退按钮项消失?斯威夫特 4

Swift 3 - 为啥我的导航栏没有显示?

为啥导航栏中的 SwiftUI TextField 一次只接受输入一个字符

为啥我的按钮位于导航栏中的“工作流程”下方?

标签栏 UIViewController 中导航栏中的按钮未显示

如何在导航栏中显示编辑按钮