Swift 更改导航栏标题全局查看图像

Swift 更改导航栏标题全局查看图像,swift,ios8,Swift,Ios8,我有一个应用程序,它有一个导航控制器,我想在标题所在的导航栏中有应用程序的徽标,我想在全球范围内这样做 self.navigationItem.titleView = UIImageView(image: UIImage(named: "logo")) self.navigationBar.barTintColor = UIColor(red:0.35, green:0.64, blue:0.98, alpha:1) 我可以全局更改颜色,但不能更改图像的标题。这就是我在导航控制器中拥有的功能(

我有一个应用程序,它有一个导航控制器,我想在标题所在的导航栏中有应用程序的徽标,我想在全球范围内这样做

self.navigationItem.titleView = UIImageView(image: UIImage(named: "logo"))
self.navigationBar.barTintColor = UIColor(red:0.35, green:0.64, blue:0.98, alpha:1)
我可以全局更改颜色,但不能更改图像的标题。这就是我在导航控制器中拥有的功能(我假设它应该放在哪里,以便全局应用。)


颜色会改变,但没有应用图像,任何帮助都会很好。

您需要覆盖自定义
UINavigationController
pushViewController
功能,并将
imageView
分配给
viewController
,如下所示:

override public func pushViewController(viewController: UIViewController, animated: Bool) {
    super.pushViewController(viewController, animated: animated)

    viewController.navigationItem.titleView = UIImageView(image: UIImage(named: "logo"))
}

我对iOS很陌生,重写函数是一件好事还是不可取?如果你想全局更改
标题视图
,我认为这种方法很好。另一种方法是:将
UIViewController
的子类作为基本视图控制器,那么你所有的viewcontroller都应该继承基本视图控制器,您可以在基本的
viewDidLoad
中执行代码。我更喜欢这样:)