我想標題添加到我的UIViewController:標題有什麼不同?
我已經試過
self.navigationController.navigationItem.title
self.navigationController.title
self.title
有時候,解決方案1組的工作,有時解決方案2的工作,有時解決方案3級的作品。
任何專家都可以告訴我他們之間的不同嗎?
我想標題添加到我的UIViewController:標題有什麼不同?
我已經試過
self.navigationController.navigationItem.title
self.navigationController.title
self.title
有時候,解決方案1組的工作,有時解決方案2的工作,有時解決方案3級的作品。
任何專家都可以告訴我他們之間的不同嗎?
title
是UIViewController
的財產。
表示此控制器管理的視圖的本地化字符串。 將標題設置爲描述視圖的人類可讀字符串。如果 視圖控制器具有有效的導航項目或標籤欄項目, 將值分配給此屬性將更新這些 對象中的標題文本。
self.navigationController
是管理viewControllers您viewController
在堆棧中的UINavigationController
。UINavigationController
是UIViewController
子類,因此self.navigationController.title
是UINavigationController
的title
。
self.navigationItem.title
:在導航欄 的中央顯示
的導航項目的冠軍。默認值是零。當接收器在導航 項目堆棧上並且從頂部開始第二個,換句話說,其視圖 控制器管理用戶將導航回到的視圖 - 該屬性中的 值用於最頂端的 導航欄。如果此屬性的值爲零,則系統使用 字符串「返回」作爲後退按鈕的文本。
因此,在實踐中,你應該設置你的ViewController
S的title
。 iOS版將這個標題複製到導航項目或標籤欄項目,如果你ViewController
由UINavigationController
管理上導航欄顯示此標題,當你推到另一個ViewController
它將使用該文本爲後退按鈕,如果您的ViewController
由UITabBarController
管理,它將顯示在標籤欄中。
我創建了一個演示,以解釋它們:
你看,我vc1
是黃灰色color
嵌入在navigation controller
,我vc2
是淺綠色color
嵌入在navigation controller
也是如此,兩個navigation controller
全部由tabbar controller
管理。
在ViewController.swift
(它是vc1
),如果設置了self.title
:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.title = "vc1's title"
}
}
在ViewController2.swift
(它是vc2
):
import UIKit
class ViewController2: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.title = "vc2's title"
}
}
結果是tabbar title
和navigation title
所有組:
如果我設置self.navigationController?.title
:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// self.title = "vc1's title"
self.navigationController?.title = "vc1's nav title"
}
}
結果tabbar title
設置:
如果我設置self.navigationItem.title
:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// self.title = "vc1's title"
//self.navigationController?.title = "vc1's nav title"
self.navigationItem.title = "vc1's navItem title"
}
}
結果navigation title
設置:
你嘗試self.navigationController.navigationItem.title? – Kevin
我知道它可以用作演示,我想知道這個的根本原因,然後我可以決定在未來的開發中使用哪一個。 – Kevin