【发布时间】:2012-02-15 22:30:11
【问题描述】:
我在演示 VC 中使用以下代码淡入子模态 VC,效果很好:
self.infoViewController.view.alpha = 0.0;
[self.navigationController presentModalViewController:self.infoViewController animated:NO];
[UIView animateWithDuration:0.5
animations:^{self.infoViewController.view.alpha = 1.0;}];
但是我不能让它淡出,我尝试了一些东西,这是我尝试过的最新的不起作用:
- (IBAction)dismissAction:(id)sender
{
if ([[self parentViewController] respondsToSelector:@selector(dismissModalViewControllerAnimated:)])
{
[[self parentViewController] dismissModalViewControllerAnimated:YES];
self.parentViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
self.parentViewController.view.alpha = 0.0;
[UIView animateWithDuration:0.5
animations:^{self.parentViewController.view.alpha = 1.0;}];
} else
{
[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];
self.presentedViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
self.presentedViewController.view.alpha = 0.0;
[UIView animateWithDuration:0.5
animations:^{
self.presentedViewController.view.alpha = 1.0;}];
}
}
模态视图控制器会立即淡出,而不是像它显示时那样在一段时间内淡出。
【问题讨论】:
-
如果您确实希望此代码在 iOS 5 之前的设备上运行,您需要保护对
presentedViewController和dismissModalViewControllerAnimated的调用。 -
如果您看到关闭动画,听起来确实是这段代码正在执行,并且正在通过另一条路径被关闭。
标签: ios animation modalviewcontroller fadeout dismiss