喜欢单个视图控制器的大标题

7 uinavigationbar uinavigationcontroller swift

如何为嵌入在导航控制器中的单个视图控制器设置大标题?通常我只能为包括所有视图控制器在内的整个导航控制器设置大标题,但我只想显示一个大标题。

self.navigationController?.navigationBar.prefersLargeTitles = true
Run Code Online (Sandbox Code Playgroud)

Eri*_*sma 10

虽然其他两个答案都可以解决问题,但更简洁的方法是在您想要的 UIViewController 中执行以下操作:

navigationItem.largeTitleDisplayMode = .always
Run Code Online (Sandbox Code Playgroud)

或相反的效果:

navigationItem.largeTitleDisplayMode = .never
Run Code Online (Sandbox Code Playgroud)

这消除了跟踪状态的需要,在我看来这是一个巨大的改进

有关该主题的更多信息,请参阅largeTitleDisplayMode - Apple 开发人员文档

唯一的缺点是它是 iOS 11.0+


Rob*_*ler 5

您可以设置prefersLargeTitles = trueviewWillAppear当ViewController中的要出现,并prefersLargeTitles = falseviewWillDisappear当的ViewController的要消失

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.navigationBar.prefersLargeTitles = true
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    navigationController?.navigationBar.prefersLargeTitles = false
}
Run Code Online (Sandbox Code Playgroud)