[英]Need to set logo in left side of Navigation bar in AppDelegate
我正在做一個快速的項目。我需要將徽標顯示在導航欄的左側,並希望在AppDelegate中將其全局化。 但是Appdelegate中未檢測到self.navigationitem嗎?任何幫助都將是我的第一個迅速項目。
UINavigationBar.appearance().barTintColor = Constants.templatecolor
let logoImage = UIImage.init(named: "logoImage")
let logoImageView = UIImageView.init(image: logoImage)
logoImageView.frame = CGRect(x: -40, y: 0, width: 150, height: 25)
logoImageView.contentMode = .scaleAspectFit
let imageItem = UIBarButtonItem.init(customView: logoImageView)
let negativeSpacer = UIBarButtonItem.init(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
negativeSpacer.width = -25
UINavigationItem.setLeftBarButtonItems(negativeSpacer, imageItem)
您無法在AppDelegate
設置導航項。 導航項是UIViewController
或UINavigationController
的屬性,您可以為每個ViewController設置UINavigationItem
。
如果所有你想要實現的是設置為所有屏幕導航標題聲明基類稱其為BaseViewController
n的viewDidLoad
的BaseViewController
設置的導航項目
class BaseViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let logoImage = UIImage.init(named: "close")
let logoImageView = UIImageView.init(image: logoImage)
logoImageView.frame = CGRect(x: -40, y: 0, width: 150, height: 25)
logoImageView.contentMode = .scaleAspectFit
let imageItem = UIBarButtonItem.init(customView: logoImageView)
let negativeSpacer = UIBarButtonItem.init(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
negativeSpacer.width = -25
self.navigationItem.leftBarButtonItems = [negativeSpacer,imageItem]
// Do any additional setup after loading the view.
}
}
現在,您項目中的每個viewController都可以從BaseViewController
擴展
class ViewController: BaseViewController {
...
override func viewDidLoad() {
super.viewDidLoad()
}
}
確保在viewDidLoad
調用super.viewDidLoad
希望有幫助
設置logoImageView的框架時,請更改其x位置。 您設置它的值為-40可能是因為您看不到該logoImage。 將其x位置更改為0。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.