为什么presentModalViewController:动画:将背景变为黑色?

时间:2011-08-31 12:03:29

标签: ios uiviewcontroller presentmodalviewcontroller

我正在使用 presentModalViewController:animated:,虽然在功能上它在视觉上正常工作但它有一个我想删除的工件。当模态呈现的viewController出现时,其父viewController被完全隐藏,背景变黑。这不是我想要的。我的孩子viewController的视图是半透明的,我想揭示它后面的父viewControllers视图。我想要的效果是一张描图纸在背景上滑动。

我假设 presentModalViewController:animated:支持此功能。那不是这样吗?

谢谢,
道格

3 个答案:

答案 0 :(得分:9)

NavigationController 视图控制器的设计方式是一次只能显示一个视图控制器。当按下/显示新的视图控制器时,系统将隐藏先前的视图控制器。因此,当您缩小模态视图的 alpha 时,您可能会看到窗口的backgroundColor (您现在看到的黑色)。

如果要在主视图上滑入半透明视图,可以将视图添加为主视图的子视图,并使用 UIView动画为其设置动画。

答案 1 :(得分:7)

这可能会让你得到你想要的东西:

presentingViewController.modalPresentationStyle = UIModalPresentationCurrentContext;

答案 2 :(得分:2)

presentingViewController.modalPresentationStyle = UIModalPresentationCurrentContext; 在ios7之后无法正常工作,您可以在

之后修复它

presentingViewController.modalPresentationStyle = UIModalPresentationOverCurrentContext;
presentingViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

然后两个: [appViews.rootViewController presentViewController:presentingViewController animated:YES completion:nil];