如何解决未通过扩展名设置大标题[Swift 5]
我有一个扩展程序,可以用我在控制器的UINavigationController
中调用的大标题来配置ViewDidLoad
;
extension UINavigationController {
func configure(with title: String) {
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.title = title
navigationItem.largeTitledisplayMode = .automatic
}
}
但是,当我放置该扩展名时,它似乎没有被调用
navigationController?.navigationBar.prefersLargeTitles = true
进入我的ViewDidLoad
,它可以正常工作。为什么会有这样的想法?
解决方法
呼叫navigationController?.navigationBar.prefersLargeTitles = true
时指的是ViewController.navigationController
。
但是您的扩展名是针对UINavigationController
的,因此它引用了ViewController.navigationController.navigationController
只需替换一下:
navigationController?.navigationBar.prefersLargeTitles = true
与此:
navigationBar.prefersLargeTitles = true
并在viewDidLoad
中调用它:
navigationController?.configure(with: "")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。