繁体   English   中英

仅在拆分视图控制器的一半上提供模态视图控制器

[英]Presenting a modal view controller over only one half of a split view controller

我正在改编现有的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...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM