2017-08-15 7 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は、単一のView Controllerに固有です。必要な機能を実行する唯一の方法は、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'。その後、表示するロゴを必要とする他のすべてのView Controllerは、MyBaseClassから継承する必要があります。正しい?ありがとう!〜 –

+0

基本クラスをインスタンス化する必要はありません。ナビゲーションコントローラ階層内のviewViewを表示したいView Controllerが、基本クラスをサブクラス化していることを確認してください。例えば、あなたのクラス定義は次のようなものから始めるべきです:class MyViewController:MyBaseClass – bjd23

+0

こんにちは、残念ですが、これを正しく実装する方法についてはまだ混乱しています。ありがとう! –

関連する問題