[英]Access navigationItem from protocol extension
是否可以從協議擴展名訪問navigationItem? 例如,如果我要將以下代碼放入協議擴展中:
let customTitleView = UIView() // some custom view
navigationItem.titleView = customTitleView
但是,這會帶來一個錯誤,指出navigationItem是一個無法解析的標識符,即它無法檢測到它。 我猜這是因為它不是UIViewController的子類。 有沒有其他方法可以從協議擴展中獲取navigationItem?
這樣的事情行嗎?
protocol NavigationBarStyleable {
var titleView: UIView { get }
func style()
}
extension NavigationBarStyleable where Self: UIViewController {
var titleView: UIView {
return UIView()
}
func style() {
navigationItem.titleView = titleView
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.