ここに示したコードを使用して、imagePickerViewのmodalTransitionStyleプロパティを設定できます。ただし、可能な値は(SDKドキュメントから)次のとおりです。
- UIModalTransitionStyleCoverVertical:View Controllerが表示されると、そのビューが画面の下から上にスライドします。却下されると、ビューは下にスライドします。これはデフォルトの遷移スタイルです。
- UIModalTransitionStyleFlipHorizontal:ビューコントローラが表示されると、現在のビューが右から左への水平3Dフリップを開始し、前のビューの背面にあるかのように新しいビューが表示されます。却下すると、フリップは左から右に発生し、元のビューに戻ります。
- UIModalTransitionStyleCrossDissolve:ビューコントローラが表示されると、現在のビューがフェードアウトし、同時に新しいビューがフェードインします。却下すると、同様のタイプのクロスフェードが元のビューに戻るために使用されます。
他のオプションでは、もっと凝ったものを手に入れる必要があります。NavigationControllerがアプリケーションのルートビューコントローラーであり、navigationControllerと呼ばれるアプリケーションデリゲートのプロパティに格納されていると仮定します。次のメソッドを実装できます。
- (void)curlInViewController:(UIViewController *)viewController {
self.curledViewController = viewController;
[UIView beginAnimations:@"curlInView" context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.window cache:YES];
[self.navigationViewController.view removeFromSuperview];
[self.window addSubview:viewController.view];
[UIView commitAnimations];
}
- (void)curlOutViewController {
[UIView beginAnimations:@"curlOutView" context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.window cache:YES];
[self.curledViewController removeFromSuperview];
[self.window addSubview:navigationController.view];
[UIView commitAnimations];
}
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
if([animationID isEqualToString:@"curlOutView"]) {
self.curlViewController = nil;
}
}