ios - 未通过扩展设置大标题 [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: "")
推荐阅读
- python-3.x - DataFrame 无法使用 Bokeh DataColumnSource 将值分配给轴
- node.js - 包括来自双方的一对一关联
- haskell - 无法在 Haskell 中获得完全的 beta 减少
- d3.js - 如何在 d3 中获取堆栈布局中元素的键?
- shell - 简单脚本 - 自动加载到 sqlite 文件/数据库
- c# - 在弹性搜索中插入 10 万条记录
- angular7 - 如何获取时区名称,例如 (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
- c# - '未来的实例
' 在颤振中 - swift - Swift - 添加自定义 Curve 扩展后,它不会呈现以编程方式创建的视图,仅呈现使用 Interface Builder 创建的视图
- android - 未知的命令行选项“--recompile-scripts”。将 gradle 更新到 5.1.1 后