結局のところ、こういう使い方はイリーガルなんだと思いますが、いろいろ調べた結果分かった事を覚え書きしておきます。
通常は以下のようなコードを書いて、ビューの管理をcontroller_bへ移行してます。
[controller_a presentViewController:controller_b animated:YES completion:^{}];
トランジション終了後もcontroller_aの管理するビューを消さないようにするには、以下のようにrootViewControllerのmodalPresentationStyleにUIModalPresentationCurrentContextを設定すれば良いとのこと。
UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController; bak_rootViewModalPresentationStyle = rootViewController.modalPresentationStyle; // 戻ってきた時などのために退避しておく rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext; [controller_a presentViewController:controller_b animated:YES completion:^{}];
一見、うまくいって喜んでましたが、画面を回転させた時に、controller_aは回転しないままになるので、ちょっと微妙な感じですね。
ドキュメントを読むと、modalPresentationStyle は、iPadのためのものにも見えるので、ちょっと素直な使い方ではないのかもしれません。
参考
0 件のコメント:
コメントを投稿