使用你表明那里的代码,你可以设置imagePickerView的modalTransitionStyle财产。但是,你可能值是(来自SDK文档):
- UIModalTransitionStyleCoverVertical:当呈现视图控制器,其观点从屏幕底部向上滑动。解雇后,视线滑落。这是默认的转换样式。
- 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;
}
}
我不认为你可以,因为你提出了一个模态视图控制器,你不会切换视图,但控制器。我刚刚用基本的UIView动画和'animated'参数设置为'NO'对其进行了测试,但没有正常工作。 – Joost 2009-12-13 11:41:23
JoostK,你应该把它放在答案中,以便系统可以处理它。现在,如果您的答案正确,亚辛无法将问题标记为已回答。 – TechZen 2009-12-13 16:13:46