仅在拆分视图控制器的一半上呈现模态视图控制器



我正在调整现有的iPhone应用程序以在iPad上运行。在iPhone版本中,当用户点击工具栏按钮时,我会展示一个modalTransitionStyleUIModalTransitionStyleFlipHorizontal的模态视图控制器,这制作了一个非常好的"翻卡"动画。

iPad界面基于拆分视图(实际上是MGSplitViewController)。工具栏按钮位于详细信息窗格上,因此当我展示模式视图控制器时,它占据了整个屏幕,翻转过渡毫无意义。

为了获得正确的用户交互,我希望模态控制器仅在细节视图控制器上显示并翻转到位,而主视图控制器保持原样。

有什么办法可以做到这一点吗?

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

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

编辑在观看WWDC2010视频(课程 123:构建动画驱动界面)时,我意外地知道我可以用不同的方式进行相同的过渡。我采样编码,它工作:)

它是使用另一个非常相似的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:...动画而不是transitionFromView...

最新更新