0

DetailViewControllerRootController1中的标题未显示。当在DetailViewController中按下后退按钮时,它会弹出到RearTV而不是弹出到RootController1。任何人都可以告诉我如何自定义UIViewControllers上显示的导航栏的标题吗?为什么标题不显示在导航栏中? Swift 3

  1. 初始的ViewController是类型SWRevealViewController从SWRevealViewController

  2. 定制SEGUE到NavigationController

  3. 从导航控制器到RearTV(静态细胞保持几个按钮一个UITableViewController)存在的关系“根视图控制器到后视电视”

  4. 从RearTV上的按钮到VC2(具有嵌入容量的UIViewController INER置于其顶视图)有“查看” SEGUE到VC2

  5. 从在VC2容器查看有一个嵌入Segue公司以“分割视图控制器”

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

5.1.2从导航控制器(从右到下)到根控制器有一个“根视图控制器到根控制器1”的关系

5.1.3从根控制器(命名为“根控制器1”)到导航控制器(“下面的一个)有一个SEGUE‘showDetail1到导航控制器’

5.2从拆分视图控制器导航控制器(”下面的一个)有一个关系“导航控制器的详细视图控制器”

  1. 从导航控制器(“下面的一个)到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") 
} 

// firstImage first

// secondImage second

// thirdImage third

回答

0

尝试输入以下到您的视图控制器:

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

,而不是:

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

这只适用于在控制器中包含结构的情况。

+0

它仍然不会在导航栏中显示任何内容。 – bibscy

+0

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