現在表示中の View から、一時的に View を切り替えたい時がある。画面遷移とまではいかない、ライトな画面切り替えの実装方法をメモ。
INDEX
表示中のViewを切り替える
選択肢は次の2通り。
- 新規に UIView を作成し現在の View に addSubView する
- UIViewController メソッドの presentModalViewController で現在の View を切り替える
前者は、現在のViewに表示中のオブジェクトを残しつつ、新しいViewを載せる、後者は、現在の View を一時的に破棄し、新しい画面を表示する、と考えればいいと思う。
ウェルカムスクリーンや、一時的なヘルプ表示なら、presentModalViewController メソッドの方が、実装が簡単で便利。
使い方は以下のとおり。
[code]
UIViewController *controller =[[UIViewController alloc]init];
[self presentModalViewController:controller animated:YES];
[/code]
もしくは、以下のように生成時にインスタンスを autorelease プールに入れておくと、modalView を破棄したら自動的にインスタンスも開放される。
[code]
UIViewController *controller =[[[UIViewController alloc] init] autorelease];
[self presentModalViewController:controller animated:YES];
[/code]
表示中のmodalViewから、元の View に戻るには
[code]
[self dismissModalViewControllerAnimated:YES];
[/code]
を実行する。
まとめ
このやり方を知るまでは、ずっと addSubView していた。。