一个接一个地显示两个模态视图控制器,它们之间有不同的过渡风格

Posted

技术标签:

【中文标题】一个接一个地显示两个模态视图控制器,它们之间有不同的过渡风格【英文标题】:Display two modal view controllers one after another with different transition styles between them 【发布时间】:2012-03-23 16:38:28 【问题描述】:

我正在展示一个带有 UIModalTransitionStyleCoverVertical 的 modalViewController,然后,当用户选择此 modalView 的一行时,我将展示另一个 modalView,如下所示:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

    CenterViewController *nextView = [[CenterViewController alloc] init];

    nextView.modalPresentationStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:nextView animated:YES];
    [nextView release];

问题在于,无论我为第二个模态视图控制器初始化什么类型的过渡样式模式,过渡样式都保持为 UIModalTransitionStyleCoverVertical。

我错过了一些相关的东西吗? 提前致谢。

【问题讨论】:

【参考方案1】:

UIModelPresentaionStyle 用于告诉 ios 你想要 FullScreen 或 PageSheet..etc。 ,在您的情况下,您应该使用 UIModelTransitionStyle .. 所以如果您这样做,它应该可以工作。

nextView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

【讨论】:

【参考方案2】:

我会尝试先删除旧的,然后再展示新的。

虽然听起来不像是一项伟大的技术。为什么不让你的第一个模态视图控制器成为某种容器控制器,并通过翻转呈现新视图。

【讨论】:

以上是关于一个接一个地显示两个模态视图控制器,它们之间有不同的过渡风格的主要内容,如果未能解决你的问题,请参考以下文章

iPhone - 平滑显示 2 个连续的模态视图控制器

将模态呈现的视图控制器关闭到不同的底层视图控制器

试图在两个视图控制器之间传递数据

如何将两个视图控制器显示为模态但仅对第二个进行动画转换?

从模态视图控制器推送/弹出到另一个视图控制器(包括图片)

在 Swift 中显示和关闭模态视图控制器