Swift popToRoot not working

2019-02-23 23:50发布

www.dropbox.com/s/jrzrst5qtfq6op2/Screenshot%202015-03-20%2022.27.42.png?dl=0

This highlighted line is where should popToRoot proceed, after a successful registration it should redirect to Root View Controller. For some reason it's not working for me, literally nothing happens, not even error.

I tried with

self.navigationController?.popToRootViewControllerAnimated(true)

1条回答
劫难
2楼-- · 2019-02-24 00:20

You don't appear to be using navigation controller at all, so I'd wager that self.navigationController is nil.

You could use an unwind segue. So in your root view controller, add a method like so:

@IBAction func unwindToRoot(segue: UIStoryboardSegue) {
    print("successfully unwound")
}

Then in your scoreboard scene from which you want to unwind, you can control-drag from the button to the "exit outlet":

enter image description here

When you let go, you can pick the unwind action:

enter image description here

This achieves the "pop to root" sort of functionality, but is not contingent upon using navigation controller.


If you want to perform this unwind programmatically, rather than doing the segue from the button to the exit outlet, do it from the view controller icon to the exit outlet:

enter image description here

Then, select the segue in the document outline and give this segue a unique storyboard id:

enter image description here

Then you can programmatically perform the segue, using the same identifier string:

performSegueWithIdentifier("UnwindToRoot", sender: self)
查看更多
登录 后发表回答