Skip to content

Instantly share code, notes, and snippets.

@fuzz6001
Last active August 29, 2018 06:52
Show Gist options
  • Save fuzz6001/fa9e668006aeab81bdfe3993457ae867 to your computer and use it in GitHub Desktop.
Save fuzz6001/fa9e668006aeab81bdfe3993457ae867 to your computer and use it in GitHub Desktop.
ナビゲーションバーの情報
no code
@fuzz6001
Copy link
Author

iOS View Controllerカタログ

Navigation Itemとしてカスタムボタンやカスタムビューを使用する

特定のView Controller用にNavigation Barの外観をカスタマイズするには、それに対応する
UINavigationItemオブジェクトの属性を変更します。View Controller用のNavigation Itemは、
navigationItemプロパティから取得できます。View Controllerは、要求されるまではNavigation Item
を作成しません。そのためナビゲーションインターフェイスにView Controllerをインストールする予
定がある場合に限り、このオブジェクトを要求するべきです。

View Controller用のNavigation Itemを変更しなくても、Navigation Itemは、ほとんどの場合に十分対応
できるデフォルトのオブジェクトセットを提供します。カスタマイズを行えばそれらはすべてデフォ
ルトのオブジェクトよりも優先されます。

最上位のView Controllerに関して、Navigation Barの左側に表示される項目は次の規則に従って決定さ
れます。

  • 最上位のView ControllerのNavigation ItemのleftBarButtonItemプロパティにカスタムBar Button
    Itemを割り当てた場合は、その項目の優先度が最も高くなります。
  • カスタムBar Button Itemを割り当てていない場合は、ナビゲーションスタックの1レベル下のView
    ControllerのNavigation ItemのbackBarButtonItemプロパティに有効な項目が設定されていると、
    Navigation Barはその項目を表示します。
  • どちらのView ControllerにもBar Button Itemが指定されていない場合は、デフォルトの戻るボタン
    が使用され、そのタイトルには、前のView Controller(ナビゲーションスタックの1レベル下のView
    Controller)のtitleプロパティの値が設定されます(最上位のView ControllerがルートView Controller
    の場合は、デフォルトの戻るボタンは表示されません)。

中央

最上位のView Controllerに関して、Navigation Barの中央に表示される項目は次の規則に従って決定さ
れます。

  • 最上位のView ControllerのNavigation ItemのtitleViewプロパティにカスタムビューを割り当てた
    場合、Navigation Barはそのビューを表示します。
  • カスタムタイトルのビューが設定されていない場合、Navigation Barは、そのView Controllerのタイ
    トルを付けてカスタムビューを表示します。このビューの文字列は、View ControllerのNavigation
    Itemのtitleプロパティから取得します。このプロパティの値がnilの場合は、View Controller自
    体のtitleプロパティの文字列を使います。

最上位のView Controllerに関して、Navigation Barの右側に表示される項目は次の規則に従って決定さ
れます。

  • 新たに最上位になったView Controllerがカスタムの右Bar Button Itemを持つ場合は、その項目を表
    示します。カスタムの右Bar Button Itemを指定するには、Navigation ItemのrightBarButtonItem
    プロパティを設定します。
  • カスタムの右Bar Button Itemが指定されていない場合、Navigation Barはバーの右側に何も表示し
    ません。

@fuzz6001
Copy link
Author

fuzz6001 commented Aug 29, 2018

iOS View Controllerカタログ

Navigation Itemオブジェクトの設定

Navigation Barには、項目を配置するための3つの主要な位置があります(左、右、中央)。表 1-2に、この位置を設定するために使われるUINavigationItemクラスのプロパティのリストを示します。

Navigation Controllerと組み合わせて使用するようにNavigation Itemを設定している場合は、想定されるコントロールの表示を優先するために、任意の位置のカスタムコントロールが無視されることがあります。各位置の説明には、カスタムオブジェクトがどのように使われているかについての情報も含まれています。

表 1-2 Navigation Bar上の項目の位置

backBarButtonItem
leftBarButtonItem

ナビゲーションインターフェイスでは、Navigation Controllerはデフォルトで「戻る」ボタンを左の位置に割り当てます。Navigation Controllerが提供するデフォルトの「戻る」ボタンを取得するには、backBarButtonItemプロパティの値を取得します。

左の位置にカスタムボタンまたはビューを割り当て、それでデフォルトの「戻る」ボタンを置換するには、leftBarButtonItemプロパティにUIBarButtonItemオブジェクトを割り当てます。

中央

titleView

ナビゲーションインターフェイスでは、Navigation Controllerは、デフォルトでコンテンツView Controllerのタイトルを付けてカスタムビューを表示します。必要に応じて、このビューを独自に選択したカスタムビューに置き換えることができます。

カスタムタイトルのビューを提供しないと、Navigation BarはNavigation Itemのタイトル文字列を付けてカスタムビューを表示します。また、Navigation Itemにタイトルが付いていないと、Navigation BarはView Controllerのタイトルを使用します。

rightBarButtonItem

この位置はデフォルトで空いています。通常、この位置には、現在の画面を編集したり変更したりするためのボタンが配置されます。ビューをUIBarButtonItemオブジェクトでラップすることによって、ここにカスタムビューを配置できます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment