是否可以从协议(protocol)扩展访问 navigationItem?例如,如果我想将以下代码放入协议(protocol)扩展中:
let customTitleView = UIView() // some custom view
navigationItem.titleView = customTitleView
但是,这会出现错误,指出 navigationItem 是未解析的标识符,即它无法检测到它。我想这是因为它不是 UIViewController 的子类。是否有其他方法可以从协议(protocol)扩展获取 navigationItem?
最佳答案
这样的东西有效吗?
protocol NavigationBarStyleable {
var titleView: UIView { get }
func style()
}
extension NavigationBarStyleable where Self: UIViewController {
var titleView: UIView {
return UIView()
}
func style() {
navigationItem.titleView = titleView
}
}
关于ios - 从协议(protocol)扩展访问 navigationItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35565263/