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()函數中。 –