4

モーダル ビュー コントローラーを使用して、ユーザーがアドレス帳のエントリと電子メール アドレスを選択できるようにしています。ABPeoplePickerNavigationControllerオブジェクトは次の方法で表示されpresentModalViewController:animatedます。

[self presentModalViewController:picker animated:YES];

私がやりたいことは、モーダル ダイアログを維持することですが、ユーザーが電子メール アドレスを選択すると、メッセージ作成ウィンドウを表示する別のコントローラーにクロスフェードする必要があります。

peoplePickerNavigationController:shouldContinueAfterSelectingPerson:property:identifier:ピッカーを閉じて、カスタム コンポジション コントローラーをモーダル ビューとして設定するために、さまざまな方法を試しました。さまざまな方法でそれを行うことができますが、ピッカーからコンポジションコントローラーにスムーズにフェードすることはありません-コンポジションコントローラーをピッカーのモーダルダイアログにしない限り、その場合、コンポジションを閉じるとピッカーが再表示されますコントローラ。私もそれはしたくない。

すべてモーダル ダイアログのコンテキスト内で、できればクロス フェードを使用して、1 つのコントローラーとそのビューを別のコントローラーとそのビューにスムーズに置き換える何らかの方法が必要です。提案は大歓迎です。

4

1 に答える 1

1

コンポジション コントローラーをピッカーのサブビューとして追加します。アルファを 0 に設定して透明にします。次に、アニメーション ブロックを使用して、そのアルファを徐々にアニメートしてフルにします。

// Initially set alpha to 0    
[myCompositionView setAlpha:0];

// Later when you want to show the view, animate the alpha to 1.0
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[myCompositionView setAlpha:1.0];
[UIView commitAnimations];
于 2010-03-29T07:54:25.283 に答える