如何从中心位置为所有 View Controller 的导航栏中设置 Logo ? 我的意思是,我不想在每个 View Controller (viewDidLoad())方法的代码中设置 Logo 。 有没有一个好的地方可以放置它,例如 Appdelegate 或每次屏幕更改后触发的事件? 我将下面的代码放在 Appdelegate 中,但仅适用于初始屏幕。谢谢。
let img = UIImageView(image: UIImage(named: "Tourney"))
img.contentMode = .scaleAspectFit
let logo = UIBarButtonItem(customView: img)
let root = window?.rootViewController!
root?.childViewControllers[0].childViewControllers[0].navigationItem.rightBarButtonItem = logo
最佳答案
扩展 UIViewController 并添加方法 setupNavigationBar
用于设置导航中心图像。
extension UIViewController {
func setupNavigationBar(image: UIImage) {
//set your image navigation bar center
//set titile
//self.navigationItem.title = title
//set image in the center
self.navigationItem.titleView = UIImageView(image: image)
}
}
现在setupNavigationBar
所有viewcontroller并尝试以这种方式调用
override func viewDidLoad() {
super.viewDidLoad()
self.setupNavigationBar(image: UIImage(named: "Tourney"))
}
关于ios - 如何从中心位置为所有 View Controller 在导航栏中设置 Logo ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45312853/