Storyboardに、Navigation Controllerに組み込まれているView Controllerをセットアップしました。このナビゲーションコントローラーでは、ナビゲーションバーの表示とツールバーの表示をオンにし、シミュレートされたメトリックのナビゲーションバーとツールバーをそれぞれトップバーとボトムバーで有効にしました。次に、View Controllerから別のView Controllerにセグエを「プッシュして表示」します。両方のView Controllerで、Simulated Metricsを同じ方法で設定したため、3つのコントローラーすべてでナビゲーションバーとツールバーの両方が表示されます。
問題は、ナビゲーションボタンとツールバーの両方の最初のView Controllerにバーボタンアイテムを追加できますが、2番目のView Controllerのナビゲーションバーにバーボタンアイテムを追加できないことです。ナビゲーションバーにボタンをドロップすると、代わりにツールバーに追加されます。そして、ナビゲーションバーをダブルクリックしてタイトルを追加することはできません。アウトラインでは、2番目のView Controllerにはナビゲーション項目はありませんが、最初のView Controllerにはあります。
おそらくプログラムでナビゲーションバーにボタンを追加できますが、ストーリーボードで視覚的にボタンを追加したいと思います。私の質問は、このセットアップの何が問題なのか、これはXcodeのバグですか?
XCode 6の場合、2番目以降のView ControllerのUINavigationItem
は、ストーリーボード内のView Controllerオブジェクトに自動的に追加されません。 UINavigationItem
を追加する前に、UIBarButtonItem
をそのビューコントローラオブジェクトのナビゲーションバーにドラッグする必要があります。
なぜそのように設計されているのかわかりません。私はこれについて数週間前に発見しただけです。
大量のView Controllerがあり、カスタムの自動レイアウト機能がほとんどない場合は、サイズクラスを無効にしてから再度有効にすると、ストーリーボード全体に欠落しているナビゲーションバーがすべて追加されます。
リンクされたカスタム自動レイアウトのものがたくさんある場合は明らかにお勧めできません。
ナビゲーションバーのないUIViewControllerが1つだけの場合は、UINavigationItemをドロップします。
Xcode 7 beta 4/5を使用している場合は、Xcodeを再起動して問題を解決してください
この問題にぶつかりましたが、View Controllerを表示するセグエの影響を受けているようです。
セグエの[種類]設定が[表示(プッシュなど)]の場合、アイテムを右上隅にドラッグすることはできません。ただし、「種類」設定を明示的に「プッシュ」に変更した場合は、これを行うことができます。
編集:実際には、「プッシュ」が非推奨になったことに気付いただけです。ここで何がAppleが考えているのかわかりません。ただし、ボタンを追加した後、「表示」に戻すだけで機能します:D
とても簡単です。最初にボタンのホルダーとしてnavigaitonItemを使用するだけで、その上にbarButtonItemsを追加できます。
これはバグだと思います。同じ問題がありました。サイズクラスを無効にしてから有効にすることで、この問題を修正しました。
Interface Builder docでサイズクラスを無効または有効にできます。
階層内の2番目のView Controllerの場合、「ナビゲーションアイテム」を追加せずに、属性にタイトルを設定できます