0

我有一个扩展来配置我的控制器UINavigationController调用的大标题;ViewDidLoad

extension UINavigationController {
    
    func configure(with title: String) {
        navigationController?.navigationBar.prefersLargeTitles = true
        navigationItem.title = title
        navigationItem.largeTitleDisplayMode = .automatic
    }
}

但是,当我放置以下内容时,似乎没有调用此扩展:

navigationController?.navigationBar.prefersLargeTitles = true

进入我的ViewDidLoad,它按预期工作。关于为什么会这样的任何想法?

4

1 回答 1

0

当您调用navigationController?.navigationBar.prefersLargeTitles = true它时,它指的是ViewController.navigationController.

但是你的扩展是为了UINavigationController所以它指的是ViewController.navigationController.navigationController

只需替换这个:

navigationController?.navigationBar.prefersLargeTitles = true

有了这个:

navigationBar.prefersLargeTitles = true

并将其称为viewDidLoad

navigationController?.configure(with: "")
于 2020-10-30T06:35:43.787 回答