在Navigation Bar Swift上只设置一次图像
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Navigation Bar Swift上只设置一次图像相关的知识,希望对你有一定的参考价值。
我有一个带有几个ViewControllers的应用程序,我必须在导航栏的标题中显示一个图像,我已经有了这个代码来完成它。
public func carregarLogoNav() -> Void {
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 86, height: 38))
imageView.contentMode = .scaleAspectFit
let image = UIImage(named: "logo-simples.png")
imageView.image = image
navigationItem.titleView = imageView
}
但我想知道是否可以将此图像复制到所有其他视图,而无需在每个视图中粘贴此代码。
另一种方法是在另一个ViewController中调用此函数,但它也无法正常工作
anotherViewController().carregarLogoNav()
答案
如果您希望在所有视图控制器中使用相同的titleView
,那么您可以将carregarLogoNav
函数放在扩展中,然后从每个视图控制器的viewDidLoad
调用它:
extension UIViewController {
public func setupCarregarLogoNav() {
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 86, height: 38))
imageView.contentMode = .scaleAspectFit
let image = UIImage(named: "logo-simples.png")
imageView.image = image
navigationItem.titleView = imageView
}
}
然后在每个视图控制器中:
override func viewDidLoad() {
super.viewDidLoad()
setupCarregarLogoNav()
// any other code
}
这样您的设置代码只在一个地方。它只是从其他地方打来的。
以上是关于在Navigation Bar Swift上只设置一次图像的主要内容,如果未能解决你的问题,请参考以下文章
Navigation Bar 和 Status Bar 的设置
微信小程序自定义导航栏(wx_custom_navigation_bar) 自定义返回键首页键,动态设置标题,响应式组件
Tab Bar Controller + Navigation Controller + Bar Button Item