2017-10-27 3 views
0

私は異なるnavigationBarsを含むアプリを開発しています。別の画面にカスタムナビゲーションバーを使用していますか?

  • タイトル&戻るボタン
  • タイトル、左ボタン&右ボタンバッジの数と通知アイコンと
  • タイトル
  • バッジ数とカートのアイコンとタイトル2の思想で

異なるアプローチ:

  1. (の行為を検出するのは難しいかもしれナビゲーションへサブビューとして追加できるカスタムxibViewを作成
  2. (通知&カードのバッジアイコンのアニメーションがアニメーション化するのは難しいだろうか?)ベースコントローラprogrammaticallyでナビゲーションを作成します。ボタン?)

この動作を実装するにはどうすればよいでしょうか?

答えて

1

標準的なアプローチは、ナビゲーションバーを管理する単一のナビゲーションコントローラを持つことです。

あなたはナビゲーションバーと直接対話しません(または、取り外し可能なナビゲーションバーを使用します)。UINavigationControllerがあなたのために無料で面倒を見るレイアウト問題など、多くの頭痛を引き起こします。

各画面でどのボタンが表示されるかを変更するには、各ビューコントローラのnavigationItemプロパティ(leftBarButtonItemrightBarButtonItemなど)を変更します。

It'sallinthedocsです。

0

カスタムxibを作成することをお勧めします。 アクションの処理:ハンドラーをカスタムクラス自体に置くと、プロトコルを定義し、それを使用してアクションイベントをそのプロトコルに準拠するクラスに伝達できます。 私がデリゲートに行く理由は、多くのコントローラがイベント(通知の使用)を取得する必要がなく、そのデリゲートに現在準拠しているクラスだけが必要なためです。

+0

しかし、この場合、ナビゲーションバーを持つすべてのコントローラには、プロトコルが実装されている必要があります。主にコントローラには戻るボタンとタイトルのみがあるので、左ボタンと右ボタンを持つコントローラ用のプロトコルを作成できます。 – Techiee

+0

私は主要な問題として、プロトコルメソッドのデフォルトの実装を持つことはできません。あなたはそれを各ビューコントローラで実装する必要はありません –

関連する問題