Friday, February 22, 2013

UITabBarからモーダルぽく新しいviewを表示する

UITabbarControllerからセグエで表示されるように新しいviewを表示する方法です。
動画の下のテキストは動画の内容を文字に書き起こしたものになります。
動画でわからなかったところの補足として使ってください



<状況>
UITabbarControllerで新しいviewを下のボタン群を消してモーダルぽくエフェクトをつけて表示したい。
−− UINavigationControllerも一緒に使っている場合プロパティがあるのですが、UITabbarControllerだけだと、使えないので別の方法を考える必要があります

 <解決策>
presentViewControllerを使う

では、見ていきましょう

1. 表示させたいviewにstoryboard IDをつける。view controllerを選択した状態で左から3番目のちっちゃいアイコンで確認できます。(わからなかったら動画を見てください)
2.表示したいタイミングで以下のコードを書けばOK

     UIViewController *modal = [[self storyboard]instantiateViewControllerWithIdentifier:@"setProfile"];
    [self presentViewController:modal
                       animated:YES
                     completion:NULL];

*上のサンプルでsetProfileとなっているところは自分でつけたstoryboardのidに置き換えてください
*このままだと、表示方法がdefaultの下から競り上がるエフェクトになっていますが、modal.modalTransitionStyleで指定できます

以下が動画で追加したプログラムです

サンプルコード(表示させる側のmファイル)
    modal = [[self storyboard]instantiateViewControllerWithIdentifier:@"show"]; //このmodalはhファイルで宣言されたUIViewControllerの変数です
    modal.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentViewController:modal
                       animated:YES
                     completion:NULL];

サンプルコード(表示させたい側のmファイル)
    [super dismissViewControllerAnimated:YES completion:NULL];

No comments:

Post a Comment