从弹出窗口继续 ViewController Swift
Segue from popup ViewController Swift
我的应用程序有 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 ids
尝试过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 但失败。
我肯定遗漏了一些东西,如果有人可以提供代码示例来解决这个问题,我将不胜感激。
您可以在弹出按钮的操作中试试这个
self.dismiss(animated:true) {
if let nav = UIApplication.shared.keyWindow?.rootViewController as? UINavigationController {
let vc1 = storyboard!.instantiateViewController(withIdentifier: "MenuId")
let finalVC = storyboard!.instantiateViewController(withIdentifier: "finalId")
nav.setViewControllers([vc1,vc4],animated:true) // set it to false if you want
}
}
我的应用程序有 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 ids
尝试过
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 但失败。
我肯定遗漏了一些东西,如果有人可以提供代码示例来解决这个问题,我将不胜感激。
您可以在弹出按钮的操作中试试这个
self.dismiss(animated:true) {
if let nav = UIApplication.shared.keyWindow?.rootViewController as? UINavigationController {
let vc1 = storyboard!.instantiateViewController(withIdentifier: "MenuId")
let finalVC = storyboard!.instantiateViewController(withIdentifier: "finalId")
nav.setViewControllers([vc1,vc4],animated:true) // set it to false if you want
}
}