【问题标题】:How can I go back to ViewController2 from ViewController5 - Swift我怎样才能从 View Controller 回到 ViewController - Swift
【发布时间】:2020-07-10 04:45:26
【问题描述】:

在swift中我有ViewController1ViewController2ViewController3ViewController4ViewController5,现在来自ViewController1

我像这样使用performSegue(withIdentifier: "segueIdentifier", sender: nil) 转到 ViewController5:

ViewController1 -> ViewController2 -> ViewController3 -> ViewController4 -> ViewController5

现在我在 ViewController5 上,我想关闭 ViewController2,我使用 dismiss(animated: true),它只会让你从当前的 ViewController 退一步,所以我在 ViewController4 上。

问题是,如何从 ViewController5 回到 ViewController2?

所以当我回到 ViewController2 并运行 dismiss(animated: true) 时,我将返回 ViewController1

【问题讨论】:

    标签: swift uiviewcontroller segue dismiss


    【解决方案1】:
    extension UINavigationController {
    
    func popToViewController<Controller : UIViewController>(_ type: Controller.Type){
        guard let vc = viewControllers.compactMap({ $0 as? Controller }).first else { return }
        popToViewController(vc, animated: true)
      } 
    
    }
    
    navigationController?.popToViewController(ViewController.self)
    

    【讨论】:

    • 我认为,如果我使用 UINavigationController,这是正确的答案,但问题是,我没有,我只是使用通过 Storyboard Segue 相互连接的 UIViewControllers
    • 你使用 Unwind segues 来达到这个目的。 youtube.com/watch?v=AjGge-Qzh1I
    猜你喜欢
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 2021-11-25
    相关资源
    最近更新 更多