2016-07-18 30 views
0

に意図的に埋め込まれていないUIViewContollerがあります。ナビゲーション領域にカスタムボタンを追加したいと思います。私はUIBarButtonItem(これらは主にスタイリングと関係がある)についていくつかのスレッドで見つけた提案された方法に従うので、私が書いたコードはうまくいくはずです。ここに私のコードです:UIBarButtonItemsがナビゲーションバーに表示されない

override func viewDidLoad() { 
    super.viewDidLoad() 

    let settingsButton = UIBarButtonItem(title: "Settings", style: .Plain, target: self, action: #selector(self.segueToSettings(_:))) 
    let saveToLogButton = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: #selector(self.logThisLift(_:))) 
    let viewLogButton = UIBarButtonItem(title: "Log", style: .Plain, target: self, action: #selector(self.segueToLog(_:))) 

    self.navigationItem.leftBarButtonItem = settingsButton 
    self.navigationItem.rightBarButtonItems = [viewLogButton, saveToLogButton] 
    } 

、ここで(あまりにも目に見えるビュー階層で)結果だ:

enter image description here

私はストーリーボードにバーボタン項目を追加するために必要かもしれないと思ったが、それは思われます私がしようとしているようにコードでそれを行う目的を打ち負かすこと。

ビュー階層もデバッグしようとしましたが、そこには表示されません。

なぜこれらが表示されないのか誰かが知っていますか?

+0

:それはその後、このようにする必要があります:

@IBOutlet weak var navItem: UINavigationItem! 

そして、あなたが言うことができます。

self.navItem.leftBarButtonItem = settingsButton self.navItem.rightBarButtonItems = [viewLogButton, saveToLogButton] 

をあなたは、このような文書のアウトラインでそれを見る必要がありますviewDidAppear()ではなく、ビューがロードされ、何が起こるかを確認しました:) – Konsy

答えて

2

コードにはself.navigationItemを使用していますが、コントローラがナビゲーションコントローラに組み込まれていないためナビゲーション項目がありません。

すでにナビゲーションバーを追加しましたが、ナビゲーションアイテムを追加する必要があります。

ナビゲーション項目をナビゲーションバーにドラッグしてからコードにバインドする必要があります(コンセント経由)。それを追加してみてください

Navigation item

関連する問題