iPhoneアプリ開発の虎の巻
HOME > UIViewController

UIViewController

UIViewControllerは画面の遷移などを管理するクラスです。
UINavigationControllerクラス、UITabBarControllerクラスのスーパークラスでもあります。

UIViewControllerのクラス階層

NSObjectUIResponder ↑ UIViewController

生成

// 生成例
UIViewController *vc = [[UIViewController alloc] init];

// xibファイルからの生成例
UIViewController *vc =
  [[UIViewController alloc] initWithNibName:
    @"hogeView" bundle:[NSBundle mainBundle]];

UIViewControllerのプロパティ

【UIViewControllerの主要プロパティ】
プロパティ名/型 読専 説明
title
NSString
ナビゲーションバーに表示するタイトルを設定する
modalTransitionStyle
(UIModalTransitionStyle)
モーダルとして呼ばれたときのアニメーションを指定する
 UIModalTransitionStyleCoverVertical:下から出るスタイル
 UIModalTransitionStyleFlipHorizontal:回転して出るスタイル
 UIModalTransitionStyleCrossDissolve:浮かびあがってくるスタイル
hidesBottomBarWhenPushed
BOOL
画面プッシュ時にタブバーを隠すかどうかの設定
※プッシュする前に設定する必要がある。
view
UIView
当UIViewControllerが管理するUIViewをセット・取得する
navigationController
UINavigationController
ナビゲーションコントローラを取得する
navigationItem
UINavigationItem
ナビゲーションバーに表示するオブジェクト
tabBarController
UITabBarController
tabBarItem
(UITabBarItem)
タブバーに表示するオブジェクト

主要なプロパティのみ掲載しています。
 上記「UIViewControllerのクラス階層」にあるクラスのプロパティも使用できます。

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のデリゲートメソッド

【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を実行する前に指定する必要があります。

totop