我创建了一个演示来解释它们:
你看,我的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被设置: