2

iPadで実行するように既存のiPhoneアプリを適応させています。iPhoneバージョンでは、ユーザーがツールバーボタンをタップすると、モーダルビューコントローラーにのが表示さmodalTransitionStyleUIModalTransitionStyleFlipHorizontal、非常に優れた「カードフリッピング」アニメーションが作成されました。

iPadのインターフェースは分割ビューに基づいています(MGSplitViewController実際には)。ツールバーボタンは詳細ペインにあるため、モーダルビューコントローラーを表示すると、画面全体が表示され、フリップトランジションは意味がありません。

適切なユーザーインタラクションを実現するために、モーダルコントローラーを表示し、詳細ビューコントローラー上でのみ所定の位置に反転させ、マスタービューコントローラーはそのままにしておきます。

これを行う方法はありますか?

4

2 に答える 2

10
UIViewController *viewController = [[UIViewController alloc] init];
viewController.modalPresentationStyle = UIModalPresentationCurrentContext;

[self presentViewController:viewController animated:YES completion:nil];
于 2013-10-09T17:44:13.297 に答える
5

おそらく、そのビューをDetailViewcontrollerのサブビューとして追加し、UIviewアニメーションを使用してモーダルのように見せることができます。への参照[UIView transitionFromView:toView:duration:options:completion]

編集 WWDC2010ビデオ(セッション123:アニメーション駆動型インターフェイスの構築)を見ると、同じトランジションを別の方法で実行できることに偶然気づきました。私はサンプルコード化され、それは機能しました:)

別の非常によく似たAPIを使用することです[UIView transitionWithView:duration:options:animations:completion:]

私のサンプルコードは次のとおりです

// Within your DetailViewController
[self.view addSubview:self.flipSideView];
[UIView transitionWithView:self.view duration:0.8 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{} completion:nil];

うん、それだけだった。裏側のビューをサブビューとして追加し、のtransitionWithView:...代わりにアニメーションを使用するだけですtransitionFromView...

于 2012-10-06T19:32:49.920 に答える