2017-08-16 4 views
0

ナビゲーションコントローラのナビゲーションバー内に戻るボタンとタイトルの代わりにカスタムボタンを使用します。私はカスタムナビゲーションコントローラを作成しました。私はエラーを持っていませんが、何も自動的にその絵コンテのタイトルから継承されたタイトル(を除いて、私のナビゲーションバーに表示されなかっカスタムナビゲーションコントローラに各カスタムストーリーボードに同じカスタムnavBarボタンを提供する方法

let leftButtonItem = UIBarButtonItem.init(
    title: "My Connections", 
    style: .done, 
    target: self, 
    action: #selector(goToPartners) 
    ) 

    let middleButtonItem = UIBarButtonItem.init(
    title: "Home", 
    style: .done, 
    target: self, 
    action: #selector(goHome) 
    ) 

self.navigationItem.setLeftBarButtonItems([leftButtonItem, middleButtonItem], animated: false) 

:(のviewDidLoad関数の内部で)カスタムナビゲーションコントローラの内部では、私はこれを持っています)

+0

doublecheck作成したカスタムクラスを使用しています –

+0

はい、navコントローラに既にクラスを設定しました – Nico

答えて

0

ナビゲーションコントローラーのviewDidLoadは、ナビゲーションコントローラーが最初にロードされたときにのみ実行されるので、ナビゲーションコントローラーを無効にすることは役に立ちません。各ビューコントローラーがプッシュされると、ボタン項目が更新されます。

は、私はあなたがUINavigationControllerDelegateを実装し、この場合には動作しませんnavigationController(_:willShow:animated:)方法

2

setLeftBarButtonItemsに更新するnavigationItemをそれを使用することを示唆しています。これは、setLeftBarButtonItemsがバーボタン項目へのトランジションを実行するために使用されるためです。あなたのビューコントローラのViewDidLoadに下記のよう

だけleftBarButtonItemsに置き換えます

self.navigationItem.leftBarButtonItems = [leftButtonItem, middleButtonItem] 

あなたの問題を解決しなければならないこと。

+0

これで問題は解決しませんでしたが、「関数型以外の値を呼び出せません」というエラーが表示されるUIBarButtonItem '' – Nico

+0

swift 3.0以下のバージョンを使用していますか? – LearnerAllTheWay

0

カスタムのuiviewcontrollerクラスを作成する必要があり、viewdidload関数内でsetleftbarbuttonアイテムとsetrightbarbuttonを使用して、すべてのビューコントローラにクラスを継承しました。

関連する問題