2016-09-14 3 views
0

私は ボタンをナビゲーションコントローラに表示させることに問題があります。私はこれを研究しており、ナビゲーションの仕組みと関係していると思います。スタックからプッシュおよびポップします。ここで現在のviewControllerの一部であるナビゲーションコントローラを調べるにはどうすればよいですか?

は私が持っているものです。

私はナビゲーションコントローラとして最初のビューを持っています。このコントローラはいくつかのビューを呼び出しますが、問題が発生しているビューはUICollectionViewControllerです。これは、navigationControllerに接続された最初のviewControllerをクリックすることで呼び出されます。次に、UICollectionViewCellから新しいViewControllerに向かうセグの設定があります。したがって、私はこれが第2レベルのNavigationControllerであると仮定しています。

私はテキストの代わりにナビゲーションに表示される戻るボタンイメージを持っています<戻る。

2番目のレベルのセグから呼び出されたビューを除く、すべてのビューのナビゲーションコントローラに戻るボタンが正常に表示されます。

このトピックの他の投稿を読んで理解しているのは、新しいナビゲーションコントローラが2番目のレベルのセグエーに作成されたからです。

すべて正常に動作するので、私はうまくいくが、私はその2番目のnavcontrollerに表示するボタンが必要です。

私は、現在のビューに関連付けられたナビゲーションコントローラにボタンをプログラムで追加しようとしていました。私はこのコードを使用しています:

override func viewDidLoad() { 
    super.viewDidLoad() 
    var image = UIImage(named: "NavLogo") 
    var back_image = UIImage(named: "BackButton") 
    image = image?.withRenderingMode(UIImageRenderingMode.alwaysOriginal) 
    back_image = back_image?.withRenderingMode(UIImageRenderingMode.alwaysOriginal) 


    self.navigationController?.navigationItem.rightBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.plain, target: nil, action: nil) 

    self.navigationController?.navigationItem.leftBarButtonItem = UIBarButtonItem(image: back_image, style: UIBarButtonItemStyle.plain, target: nil, action: nil) 
} 

このコードは、現在のナビゲーションコントローラにボタンを追加していないようです。

このプロジェクトは、スウィフト3とXcode 8

答えて

2

使用

代わりに、この理由は、この linkで説明されて

self.navigationController?.navigationItem.rightBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.plain, target: nil, action: nil) 

self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.plain, target: nil, action: nil) 

を使用しています。

+0

私はそれを最初に試しましたが、どちらもうまくいきませんでした。面白いことは、rightBarButtonItemが表示されていることです。 –

+0

ケリー、あなたは正しい答えを持っているので、私のような他の骨抜きがこれを見落とさずに私はイマナメのスペルミスを忘れてしまった。助けてくれてありがとう。 –

関連する問題