如何快速在所有导航栏中将图像设置为标题?

时间:2019-05-08 04:38:18

标签: swift uiimage uinavigationbar

我需要知道是否可以在所有导航控制器上添加图像作为标题,这意味着每个具有导航栏的控制器都具有相同的图像标题。

我使用下一个代码在导航栏中将图像设置为标题,但是我必须在每个viewController上设置它,例如,其想法是在AppDelegate上将其设置为UINavigationBar.appereance()或类似名称。

let imageView         = UIImageView(image: UIImage(named: "my_image.png")!)
imageView.contentMode = .scaleAspectFit

let titleView         = UIView(frame: CGRect(x: 0, y: 0, width: 107, height: 30))
 imageView.frame       = titleView.bounds
titleView.addSubview(imageView) 

self.navigationItem.titleView = titleView

因此,我们的想法是将此图像设置为每个控制器的默认标题,这样,我只需要配置一次即可。

那是可能的吗?如果没有,您认为我可以采用什么解决方案?

2 个答案:

答案 0 :(得分:1)

标题视图是每个视图控制器的属性,而不是导航栏或导航控制器的属性。

因此,从一个UIViewController子类开始,该子类的导航项具有此标题视图,并使所有其他视图控制器成为该子类的子类。

答案 1 :(得分:0)

请尝试以下代码,

let logo = UIImage(named: "logo.png")
let imageView = UIImageView(image:logo)
self.navigationItem.titleView = imageView

如果这不起作用,请共享屏幕截图。