ios - 如何同时呈现两个 View Controller ?

标签 ios swift uiviewcontroller presentviewcontroller

我的目标是呈现一个 View Controller 而不直接关闭它的 presentingViewController .

为了更清楚,请考虑以下示例:

引用这个 Storyboard:

enter image description here

假设第一个黑色 View Controller 是第一个(初始) View Controller ,它应该呈现第三个白色 View Controller ;问题是白色 View Controller 应该关闭到第二个橙色 View Controller ,但不是黑色 View Controller ,所以它应该表现得像:

  • 黑色 VC 礼物 白色 VC。
  • White VC 解雇Orange VC。
  • Orange VC DismissesBlack VC。

如何应用这样的行为?

备注:没有导航 Controller ,应该是present/dismiss,不是push/pop。

最佳答案

这可以通过让第一个黑色 View Controller 呈现第二个橙色 View Controller 然后橙色 View Controller 呈现第三个白色 View Controller 来实现。

但这会出现一个问题:最终用户会清楚地注意到有两个 View Controller 已按顺序显示。为了解决这个问题,您需要做一个非常简单的技巧,即从第一个 View Controller 获取屏幕截图并将其传递给第二个 View Controller 以在呈现第三个 View Controller 时显示它。

可以查看this repository看看它究竟是如何完成的(Swift 3)。

最终输出为:

enter image description here

关于ios - 如何同时呈现两个 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43741197/

相关文章:

ios - MKMapView 在 LocationManager 获取用户位置之前加载 - 无法将区域设置为以用户位置为中心

swift - 更改AudioQueueBuffer的mAudioData

ios - 如何使用 Alamofire 下载文件?

swift - 有没有办法根据静态或动态使用情况有条件地定义 Podspec 属性?

iphone - touchesBegan - iPhone 应用程序 UIView

ios - 使用 UIGestureRecognizer (iOS) 围绕 anchorPoint 平移、缩放、旋转 UIView

iphone - NSFileManager 多实例写入原子性

uiview - iOS 9 中界面旋转结束时的回调?

ios - 无法识别的选择器发送到实例 - UIViewController

android - 如何防止移动设备在显示 HTML 页面时关闭其显示