gpt4 book ai didi

ios - Swift - 导航到根 Controller 的问题

转载 作者:行者123 更新时间:2023-11-30 12:29:28 24 4
gpt4 key购买 nike

我有一个具有以下结构的 Storyboard

NavigationController -> HomeViewController -> StoryBoardSegue (Id: SignUpViewController) -> SignUpViewController -> StoryBoardSegue (Id: SignupStep1ViewController) -> SignUpStep1ViewController -> StoryBoardSegue (Id: SignUpStep2ViewController) -> SignUpStep2ViewController

上面的结构是针对尚未登录的用户的,我此时停止了segue链,因为,我希望用户登录后立即有一个完全不同的导航结构,目前的结构是

Navigation Controller -> MainMenuViewController

在每个屏幕中,我使用以下方法将用户重定向到新的 ViewController

performSegue(withIdentifier: "SignInViewController", sender: self)
performSegue(withIdentifier: "SignUpViewController", sender: self)
performSegue(withIdentifier: "SignupStep1ViewController", sender: self)
performSegue(withIdentifier: "SignUpStep2ViewController", sender: self)

一旦用户到达 Segue 链的最后一个点(即 SignUpStep2ViewController),并且由于此时不存在 Segue,我将使用以下代码将用户重定向到另一个 ViewController。

let mainMenuViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MainMenuViewController")
present(mainMenuViewController, animated: true, completion: nil)

到目前为止一切顺利,现在在 MainMenuViewController 中,当用户单击注销时,我想将用户带到 HomeViewController

我无法使用performSegue,因为MainMenuViewController和HomeViewController之间不存在segue,我尝试了以下代码

let homeViewController = self.storyboard?.instantiateViewController(withIdentifier: "HomeViewController")
self.present(homeViewController!, animated:true, completion:nil)

问题是,由于某种原因,如果我使用 MainMenuController 中的代码,导航菜单不会显示在 SignUpViewController 中,我如何返回 HomeViewController?

最佳答案

我使用unwindSegue解决了这个问题,作为引用,在HomeViewController中,我添加了以下代码

@IBAction func unwindToVC(segue: UIStoryboardSegue) { }

在 Storyboard中,将 + 控件从 MainMenuViewController 拖到退出并选择之前创建的方法

然后运行以下代码

self.performSegue(withIdentifier: "unwindToHomeViewController", sender: self)

这非常有效,感谢以下文章帮助我理解了这个问题

https://www.andrewcbancroft.com/2015/12/18/working-with-unwind-segues-programmatically-in-swift/
http://ashishkakkad.com/2015/04/work-with-unwind-segue-in-swift-language-ios-8/

关于ios - Swift - 导航到根 Controller 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43763024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com