- 表示中の UIView に addSubview メソッドで新しい UIView を載せる。
- UIViewController の presentModalViewController:animated: メソッドを使って、新しいUIViewController と入れ替える。
下層の画面と UI を一時的にOFFにして、新しい画面を表示させたい場合は、presentModalViewController:animated: メソッドを使用すると便利です。
animated を YES とした場合のトランジション中にも、下層の UI の反応が無くなっているようなので、面倒な管理を必要としません。(かなり重要)
また、UIViewController を生成する時に、インスタンスを autorelease プールに入れておけば、dismissModalViewControllerAnimated: メソッドで元の画面に戻った時に、自動でインスタンスが解放されます。
実装としてはこんな感じになります。
// 新しいViewをpresentModalViewControllerで表示 // autorelease しておくと便利! OtherViewController *controller = [[[OtherViewController alloc] initWithNibName:@"OtherViewController" bundle:[NSBundle mainBundle]] autorelease]; [rootViewController presentModalViewController:controller animated:YES];
ユーザーの操作などで、元の画面に戻るには以下のようにします。
// modalViewを破棄して、元の画面に戻る [rootViewController dismissModalViewControllerAnimated:YES];cocos2d を使ってゲームなどを作っている場合でも、ゲームの操作説明には UIWebView などの UIKit を使って表示させたい事は多いと思います。そういう時に、presentModalViewController:animated: メソッドの利用は便利だと思いました。
0 件のコメント:
コメントを投稿