Cocoa touch 使用水平翻转显示formsheet模态ViewController

Cocoa touch 使用水平翻转显示formsheet模态ViewController,cocoa-touch,ipad,Cocoa Touch,Ipad,我当前以表单样式显示模式UIViewController,该样式与coverVertical动画一起显示。我正试图从中演示另一个模态UIViewController,使用currentContext作为演示样式,使用flipHorizontal作为动画样式。它确实可以工作,但翻转发生时,翻转后面有一个纯白背景。如果您对如何使用flipHorizontal样式成功呈现另一个formsheet modal UIViewController(来自于以formsheet样式预先存在的modal UIVi

我当前以表单样式显示模式UIViewController,该样式与coverVertical动画一起显示。我正试图从中演示另一个模态UIViewController,使用currentContext作为演示样式,使用flipHorizontal作为动画样式。它确实可以工作,但翻转发生时,翻转后面有一个纯白背景。如果您对如何使用flipHorizontal样式成功呈现另一个formsheet modal UIViewController(来自于以formsheet样式预先存在的modal UIViewController)的任何建议,我们将不胜感激!谢谢

代码:


这似乎是presentModalViewController:animated:的一个限制

您可以使用UIView动画获得想要的效果,而不是
[自我呈现ModalViewController:modal2VC动画:是]
。也许是这样的:

[UIView transitionWithView:self.view.window
                  duration:0.3
                   options:UIViewAnimationOptionTransitionFlipFromRight
                animations:^{
    [self presentModalViewController:modal2VC animated:NO];
} completion:NULL];

听起来您的过渡正在工作,但翻转过渡上显示的白色背景是问题所在吗

在翻转过渡期间,显示的白色背景实际上是
窗口
。您可以通过在
AppDelegate
中设置
窗口的
backgroundColor
属性来更改显示的颜色

UIViewController *presentingViewController = //allocate your VC
[modalViewController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
UIViewController *modalViewController = //your modal VC
[presentingViewController presentModalViewController:modalViewController animated:YES];

这就是您需要的全部代码;)

发布您当前版本的代码…这里有相同的问题!但是@superjessi说得对,白色是窗户的颜色。如果我设置为clearColor,它将变为黑色:(
UIViewController *presentingViewController = //allocate your VC
[modalViewController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
UIViewController *modalViewController = //your modal VC
[presentingViewController presentModalViewController:modalViewController animated:YES];