首页 文章

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

提问于
浏览
1

我正在调整现有的iPhone应用程序以在iPad上运行 . 在iPhone版本中,当用户点击工具栏按钮时,我会呈现一个带有 modalTransitionStyle UIModalTransitionStyleFlipHorizontal 的模态视图控制器,这制作了一个非常好的"card-flipping"动画 .

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

为了获得正确的用户交互,我希望模态控制器只在详细视图控制器上显示和翻转,使主视图控制器保持原样 .

有没有办法做到这一点?

2 回答

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

    可能你只需将其视图添加为DetailViewcontroller的子视图,并使用UIview动画使其看起来像模态 . Reference to [UIView transitionFromView:toView:duration:options:completion]

    EDIT 在观看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... .

相关问题