2016-10-07 15 views
1

左のバーのボタンアイテムを非表示にするにはどうすればいいですか?bar button items swift

私のストーリーボードでは、ナビゲーションバーをView Controllerにドラッグし、次にBar Button Itemにドラッグしました。特定の条件の下で、私はBar Button Itemを隠したいと思う。この

なしに動作しません:

override func viewDidLoad() { 
    self.navigationItem.leftBarButtonItem = nil 
    self.navigationItem.leftBarButtonItems = [] 
    self.navigationItem.setLeftBarButtonItems([], animated: true) 
} 
+0

これらのすべてがうまくいくはずです。 'self.navigationController.navigationItem'を試してください – Tj3n

+0

これはおそらく関係ありませんが、' viewDidLoad'実装で 'super'を呼び出す必要があります。 – matt

+0

なぜあなたはsuper.viewDidLoadを呼び出す必要がありますか – toast

答えて

4

私は、まあ私のビューコントローラ

にナビゲーションバーをドラッグしないでください! navigationItemを設定したナビゲーションコントローラのインターフェイスと、そこに座っているちょっとしたガチョウのナビゲーションバー(これはあなたが持っているもの)の間には大きな違いがあります。

あなたのビューコントローラをUINavigationControllerに埋め込み、正しい方法で処理します。その後、navigationItemとそのプロパティを設定すると、正常に動作します。

+0

ああ、どのような状況下ではナビゲーションビューコントローラに埋め込むべきですか?また、いつドラッグする必要がありますか? – toast

+0

前のビューコントローラはナビゲーションコントローラに組み込まれています。これは、ストーリーボードにバーボタンを追加するために、すべてのビューコントローラをナビゲーションコントローラに埋め込む必要があることを意味しますか?なぜなら、VCにナビゲーションバーをドラッグしないと、ストーリーボードにバーボタン項目を追加できないからです。私はこの混乱でどのように始めたのですか? – toast

+0

@ toast前のvc.c.すでにナビゲーションコントローラに組み込まれていて、そこからプッシュセグがあると、自動的にナビゲーションバーがこの上部に表示されます。そうでない場合は、ナビゲーションバーではなく_ナビゲーション項目を追加するだけで、バーボタンを配置することができます。 – matt

0

storyboardからnavBarを手動でドラッグするため、self.navigationItem.leftBarButtonItemにアクセスすることはできません。私の代わりに次の操作を行うことをお勧め:あなたはストーリーボード

  • barButton.title = ""
  • barButton.isEnable = falseを
  • で作成された:(barButtonなど)

    1. 追加BarButtonItemのIBOutlet

      これにより、BarButtonItemが非表示になり、後で簡単に表示できます。

    関連する問題