为什么标题不显示在导航栏中? Swift 3
问题描述:
DetailViewController
和RootController1
中的标题未显示。当在DetailViewController
中按下后退按钮时,它会弹出到RearTV
而不是弹出到RootController1
。任何人都可以告诉我如何自定义UIViewControllers上显示的导航栏的标题吗?为什么标题不显示在导航栏中? Swift 3
初始的ViewController是类型SWRevealViewController从SWRevealViewController
定制SEGUE到NavigationController
从导航控制器到RearTV(静态细胞保持几个按钮一个UITableViewController)存在的关系“根视图控制器到后视电视”
从RearTV上的按钮到VC2(具有嵌入容量的UIViewController INER置于其顶视图)有“查看” SEGUE到VC2
从在VC2容器查看有一个嵌入Segue公司以“分割视图控制器”
5.1从分裂视图控制器到导航控制器(右一)存在“主视图控制器到导航控制器”的关系
5.1.2从导航控制器(从右到下)到根控制器有一个“根视图控制器到根控制器1”的关系
5.1.3从根控制器(命名为“根控制器1”)到导航控制器(“下面的一个)有一个SEGUE‘showDetail1到导航控制器’
5.2从拆分视图控制器导航控制器(”下面的一个)有一个关系“导航控制器的详细视图控制器”
- 从导航控制器(“下面的一个)到Detail View Controller有一个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")
}
答
尝试输入以下到您的视图控制器:
self.navigationController?.navigationBar.topItem?.titleView = CustomNavBar.left(title: "some title")
,而不是:
self.navigationController?.navigationItem.titleView = CustomNavBar.center(title: "some title")
这只适用于在控制器中包含结构的情况。
它仍然不会在导航栏中显示任何内容。 – bibscy
@bibscy你将这行代码添加到哪里以及在哪里?它应该在你想拥有这个标题的控制器的viewDidLoad()函数中。 –