【发布时间】:2018-09-15 12:53:02
【问题描述】:
我有嵌入导航控制器的 7 个屏幕 (VC) 的应用程序。
我有一个未嵌入的单独 VC。这个 VC 的行为类似于自定义弹出窗口 class PopupView: UIViewController {},并通过使用自定义 segue(在情节提要中设置为自定义 segue)从我的应用程序中的每个屏幕上按下按钮来调用:
open class MIBlurPopupSegue: UIStoryboardSegue {
open override func perform() {
MIBlurPopup.show(destination, on: source)
} }
在这个弹出窗口中,有一个按钮应该打开另一个嵌入在导航堆栈中的 VC(VC 始终相同)。
我想要实现的是通过按下 Popup VC 中的按钮实际打开导航堆栈内的 VC,然后返回调用 Popup 的屏幕。
因此,用户旅程看起来像 - 打开 VC1(2,3,5,6,7) -> 调用弹出式 VC -> 按下按钮 -> 打开 VC4 -> 按下导航返回按钮 -> 返回到 VC1。
我现在拥有的:
在情节提要中将所有 6 个屏幕连接到 VC4,并带有 segues id
试过
performSegue(withIdentifier: "toVC4"),present(vc, animated: true, completion: nil)let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) let controller = storyboard.instantiateViewController(withIdentifier: "VC4") self.present(controller, animated: true, completion: nil)在 VC1 中使用协议调用 func 但失败。
我肯定遗漏了一些东西,如果有人能提供代码示例来解决这个问题,我将不胜感激。
【问题讨论】:
标签: ios swift uiviewcontroller popup segue