2017-08-15 47 views
0

我有一个嵌入到NavigationController一个UITableViewController,见下图:导航控制器标题图像消失

enter image description here

,这里是我在我的形象如何加入标题:

navigationItem.titleView = UIImageView(image: Views.navigationBarLogo)

但是,我有另一个UITableViewController以编程方式创建,当然导航控制器中的图像会消失,有没有一种方法可以在图像中添加而不需要重复g我上面的代码。

谢谢!

+0

看到这个曾经https://stackoverflow.com/questions/39739660/how-to-use-an-image-logo-on-the-navigation-bar-instead-of-title –

回答

2

UINavigationItem特定于单个视图控制器。做你想做的事的唯一方法是创建一个基类来设置titleView,然后让导航控制器中的每个所需的视图控制器都从你的基类继承。样品基类:

class MyBaseClass: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view. 
     self.navigationItem.titleView = UIImageView(image: Views.navigationBarLogo) 
    } 
} 
+0

谢谢,并从你的答案,我可以想象的东西(因为我现在没有我的Mac)是去我的应用程序委托,实例化我的MybaseClass和一个navigationController并设置它的根控制器是'MyBaseClass'。之后,所有需要显示徽标的其他视图控制器都需要从'MyBaseClass'继承。正确?谢谢!〜 –

+0

不需要实例化你的基类。只要确保您的导航控制器层次结构中的任何视图控制器,即您希望显示titleView,就可以划分您的基类的子类。例如,你的类定义应该从这样的事情开始:class MyViewController:MyBaseClass – bjd23

+0

您好,很抱歉,但我仍然对如何正确实现这个问题感到困惑,您能否特别在应用程序代理中显示我的代码?谢谢! –

相关问题