仅通过分割视图控制器的一半呈现模态视图控制器

我正在修改现有的iPhone应用程序以在iPad上运行。 在iPhone版本中,当用户点击一个工具栏button时,我会提供一个带有modalTransitionStyleUIModalTransitionStyleFlipHorizontal的模态视图控制器,这使得一个非常好的“卡片翻转”animation。

iPad界面基于分割视图(实际上是MGSplitViewController )。 工具栏button在细节窗格中,所以当我呈现模式视图控制器时,它占据了整个屏幕,翻转过渡是没有意义的。

为了获得正确的用户交互,我希望模态控制器出现,并且在详细视图控制器上进行转换,使主视图控制器保持原样。

有没有办法做到这一点?

 UIViewController *viewController = [[UIViewController alloc] init]; viewController.modalPresentationStyle = UIModalPresentationCurrentContext; [self presentViewController:viewController animated:YES completion:nil]; 

也许你可以添加它的视图作为DetailViewcontroller的子视图,并使用UIviewanimation来使它看起来像模态。 参考[UIView transitionFromView:toView:duration:options:completion]

编辑当观看WWDC2010video(Session 123:Building Animation Driven Interfaces)时,我意外地发现我可以用不同的方式做相同的转换。 我采样编码,它的工作:)

它是使用另一个非常相似的API [UIView transitionWithView:duration:options:animations:completion:]

我的示例代码如下

 // Within your DetailViewController [self.view addSubview:self.flipSideView]; [UIView transitionWithView:self.view duration:0.8 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{} completion:nil]; 

是的,就是这样。 只需添加翻转侧视图作为子视图,并使用transitionWithView:...animation而不是transitionFromView...