UIViewController
UIViewControllerは画面の遷移などを管理するクラスです。
UINavigationControllerクラス、UITabBarControllerクラスのスーパークラスでもあります。
UIViewControllerのクラス階層
NSObject
↑
UIResponder
↑
UIViewController
生成
// 生成例
UIViewController *vc = [[UIViewController alloc] init];
// xibファイルからの生成例
UIViewController *vc =
[[UIViewController alloc] initWithNibName:
@"hogeView" bundle:[NSBundle mainBundle]];
UIViewControllerのプロパティ
プロパティ名/型 | 読専 | 説明 |
---|---|---|
title (NSString) |
ナビゲーションバーに表示するタイトルを設定する | |
modalTransitionStyle (UIModalTransitionStyle) |
モーダルとして呼ばれたときのアニメーションを指定する UIModalTransitionStyleCoverVertical:下から出るスタイル UIModalTransitionStyleFlipHorizontal:回転して出るスタイル UIModalTransitionStyleCrossDissolve:浮かびあがってくるスタイル |
|
hidesBottomBarWhenPushed (BOOL) |
画面プッシュ時にタブバーを隠すかどうかの設定 ※プッシュする前に設定する必要がある。 |
|
view (UIView) |
当UIViewControllerが管理するUIViewをセット・取得する | |
navigationController (UINavigationController) |
○ | ナビゲーションコントローラを取得する |
navigationItem (UINavigationItem) |
○ | ナビゲーションバーに表示するオブジェクト |
tabBarController (UITabBarController) |
○ | |
tabBarItem (UITabBarItem) |
タブバーに表示するオブジェクト |
主要なプロパティのみ掲載しています。
上記「UIViewControllerのクラス階層」にあるクラスのプロパティも使用できます。
UIViewControllerのメソッド
メソッド名 | 説明 |
---|---|
-(void)presentModalViewController: (UIViewController *)modalViewController animated:(BOOL)animated |
画面をモーダルとして呼び出す ※下記例文2参照 |
-(void)dismissModalViewControllerAnimated: (BOOL) animated |
モーダルとして呼ばれた画面を閉じる ※下記例文3参照 |
// (例文2)画面(mView)をモーダルとして呼び出す(アニメーションあり)
[self presentmodalViewController:mView animated:YES];
// (例文3)モーダルとして呼び出された画面をアニメーションを行いながら閉じる
[self dismissModalViewControllerAnimated:YES];
主要なメソッドのみ掲載しています。
上記「UIViewControllerのクラス階層」にあるクラスのメソッドも使用できます。
UIViewControllerのデリゲートメソッド
メソッド名 | 説明 |
---|---|
-(void)viewDidLoad | 初回ロードされた時のみ呼び出される |
-(void)viewWillAppear:(BOOL)animated | 画面が表示される都度呼び出される |
-(void)viewDidAppear:(BOOL)animated | 画面が表示された後に呼び出される |
-(void)viewWillDisappear:(BOOL)animated | 画面が閉じる前に呼び出される |
-(void)viewDidDisappear:(BOOL)animated | 画面が閉じた後に呼び出される |
-(void)viewDidUnload | 画面がアンロードされたときに呼び出される |
-(void)didReceiveMemoryWarning | メモリ不足時に呼び出される |
-(BOOL)shouldAutorotate ToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation |
画面回転をするしないの設定 このメソッドからYESを返すようにコーディングすると画面回転がサポートされる ※下記例文1参照 ★タブバー画面で画面の回転をさせる場合は、タブバーで管理しているUIViewController全てに回転できるようにする必要がある。 |
主要なデリゲートメソッドのみ掲載しています。
UIViewController例文
// (例文1)iPhoneが逆さまの時以外に画面回転のサポートをする
-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation{
if(interfaceOrientation == UIInterfaceOrientationPortrait){
// 通常
return YES;
}else if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft){
// 左に倒した状態
return YES;
}else if(interfaceOrientation == UIInterfaceOrientationLandscapeRight){
// 右に倒した状態
return YES;
}else if(interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
// 逆さまの状態
return NO;
}
}
// 1つ上の階層へ戻る
※UINavigationControllerで管理されている必要あり。
[self.navigationController popViewControllerAnimated:YES];
// Xibで作成した"HogeViewController"を呼び出す(pushする)。
HogeViewController *hvc = [[HogeViewController alloc]
initWithNibName:@"HogeViewController" bundle:[NSBundle mainBundle]];
[[self navigationController] pushViewController:hvc animated:YES];
[hvc release];
// pushする画面にツールバーを表示しない場合設定
hvc.setHidesBottomBarWhenPushed = YES;
※pushViewControllerを実行する前に指定する必要があります。