内容の保証はできません。
/System/Library/frameWorks/UIKit.framework
クラス UINavigationController †
NSObject
|
+--UIResponder
|
+--UIViewController
|
+--UINavigationController
概要 †
UINavigationControllerクラスは、オブジェクトの階層を掘り下げて全ての外観を管理するナビゲーションバーのための特殊なコントローラです。アプリケーションに提供されたビューコントローラを使用して、ナビゲーションバーの設定やビューを描画することが可能です。各ビューコントローラは、ナビゲーションバーの左・中央・右に設置することの出来るナビゲーションアイテムを持っています。
ナビゲーションコントローラはナビゲーションバーが管理するナビゲーションアイテムと同じだけのビューコントローラのスタックを管理しています。ナビゲーションコントローラにビューコントローラをプッシュまたはポップすることが可能です。
UINavigationControllerクラスはUIViewControllerクラスを継承しているので、そのインスタンスはビュープロパティも持っています。ナビゲーションコントローラのビューは、ナビゲーションバーとビュー階層の中のトップのビューコントローラのビューを含んでいます。そのため、ビューを表示させるためにはウインドウにナビゲーションコントローラが管理するビューをアタッチする必要があります。
ただし、ナビゲーションコントローラでナビゲーションバーを実装するには、必ずナビゲーションバーの辞書にアクセスする必要があります。または、ビューコントローラの外観を表現するナビゲーションアイテムにアクセスする方法もあります。
ナビゲーションツールバーのコントローラにナビゲーションコントローラを追加することも出来ます。さらに、他のビューコントローラのトップのモーダルビューとして表すことができます。この場合、ナビゲーションコントローラがユーザに提示された時にトップのビューコントローラのビューが表示されます。また、ナビゲーションバーは既存のナビゲーションバーをカバーしています。
ビューコントローラをプッシュまたはポップした時に、ナビゲーションコントローラはナビゲーションバーとビューを適切にアップデートします。ビューコントローラは、タイトルやビュープロパティの設定と言った最低限の動作しかしません。
ビュー階層にアタッチ可能なビューはサイズ変更する必要があります。リサイズやビューの位置は、ナビゲーションバーやツールバーが表示されているかによって決まります。従って、ナビゲーションコントローラによってビューが表示された時、ビューはautoresizeingMaskプロパティに基づいて適切にサイズ変更されます。
詳細についてはプログラミングガイドのビューコントローラの項目を参照してください。
このクラスのサブクラスを作成することは意図されていません。
インデックス †
インスタンスの作成 †
– initWithRootViewController:
ナビゲーションスタックのアイテムへのアクセス †
topViewController property
visibleViewController property
viewControllers property
– setViewControllers:animated: 3.0b以降
スタックにデータを積む/データを取り出す †
– pushViewController:animated:
– popViewControllerAnimated:
– popToRootViewControllerAnimated:
– popToViewController:animated:
ナビゲーションバーの設定 †
navigationBar property
navigationBarHidden property
– setNavigationBarHidden:animated:
デリゲートの管理 †
delegate property
カスタムツールバーの設定 †
toolbar property 3.0b以降
– setToolbarHidden:animated: 3.0b以降
toolbarHidden property 3.0b以降
プロパティ †
delegate †
デリゲートを返す。デリゲートを持たないならnilを返す。
@property(nonatomic, assign) id <UINavigationControllerDelegate> delegate
navigationBar †
ナビゲーションコントローラによって管理されているナビゲーションバーを返す。
@property(nonatomic, readonly) UINavigationBar *navigationBar
navigationBarHidden †
ナビゲーションバーを表示するかどうかを指定する。
@property(nonatomic, getter=isNavigationBarHidden) BOOL navigationBarHidden
topViewController †
ナビゲーションコントローラーのスタックの一番上にあるビューコントローラを返す。
@property(nonatomic, readonly, retain) UIViewController *topViewController
viewControllers †
ナビゲーションコントローラで管理されている全てのビューコントローラを返す。
@property(nonatomic, copy) NSArray *viewControllers
visibleViewController †
現在見えているビューのコントローラ(モーダルビューコントローラまたはトップビューコントローラ)を返す。
@property(nonatomic, readonly, retain) UIViewController *visibleViewController
インスタンスメソッド †
initWithRootViewController: †
ナビゲーションコントローラのインスタンスを作成する。
- (id)initWithRootViewController:(UIViewController *)rootViewController
popToRootViewControllerAnimated: †
全てのビューコントローラをルートビューコントローラのスタックにポップして表示を更新する。
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
popToViewController:animated: †
トップビューコントローラを指定して全てのビューをポップする。その後表示を更新する。
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated
popViewControllerAnimated: †
レシーバのスタックの一番上にあるアイテムをポップして表示を更新する。
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
pushViewController:animated: †
レシーバのスタックにビューコントローラをプッシュして表示を更新する。
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
setNavigationBarHidden:animated: †
ナビゲーションバーを非表示にするかどうかを指定する。
- (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated
コンスタント †
UINavigationControllerHideShowBarDuration †
ナビゲーションバーをアニメ化する際のアニメーションの推奨継続時間
extern const CGFloat UINavigationControllerHideShowBarDuration