我怎样才能呈现一个模态视图控制器,并带有默认的关闭动画?

Posted

技术标签:

【中文标题】我怎样才能呈现一个模态视图控制器,并带有默认的关闭动画?【英文标题】:How can I present a modal View Controller with the default segue animation of dismissing one? 【发布时间】:2013-05-30 16:02:30 【问题描述】:

在我的应用程序中,我会在应用程序第一次运行时显示一个向导。在向导结束时,它会转到主屏幕。默认动画是主屏幕从底部滑入。但是,我希望向导视图控制器向下滑动以使用与模式视图控制器被解除时相同的动画来显示主屏幕。 有没有办法做到这一点?我是否必须为此实现自定义 segue,或者我可以以某种方式使用关闭视图控制器的动画样式?

【问题讨论】:

为什么向导不是呈现的视图控制器而主屏幕不是窗口根视图控制器? 因为我不能在主屏幕出现之前呈现它,所以用户可以在短时间内看到主屏幕.. 除非您将主屏幕的 alpha 设置为 0 或简单地将其隐藏在您的 viewWillAppear 中。 我都试过了,将 alpha 设置为 0 或隐藏它。不幸的是,它现在会在短时间内显示红屏 【参考方案1】:

显示您的主屏幕,并在其顶部显示向导屏幕(显示为模式),然后,当用户关闭向导时,它将向下滑动并显示主屏幕。

【讨论】:

我试过这个,但是我不能在不显示主屏幕的情况下将其显示为模态。在主屏幕上调用“viewDidAppear”之前,我无法显示向导 为什么不呢?在 -viewDidLoad 方法中呈现它(没有动画)。它应该可以工作。 不幸的是,它没有。将不会显示视图控制器并记录以下警告:警告:尝试在 上显示 ,其视图不在窗口层次结构中! 如果你出现在 viewWillAppear 上?

以上是关于我怎样才能呈现一个模态视图控制器,并带有默认的关闭动画?的主要内容,如果未能解决你的问题,请参考以下文章

在已经呈现的表单上呈现模态视图

Branch.io 呈现导航控制器

呈现/关闭包含表格的模态视图控制器会使表格下降

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

关闭模态视图控制器后呈现不同的视图控制器

如何关闭模态视图控制器,然后立即让呈现视图控制器呈现不同的模态视图控制器?