问题
I am new to iOS development. I am developing an application using iOS Swift. I have 3 view controllers viewController1, viewController2, viewController3. When I click from viewController1 its move to viewController2. By using the following code
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let secondViewController = storyboard.instantiateViewControllerWithIdentifier("viewController2")
presentViewController(secondViewController, animated: false, completion: nil)
Now I am moving from viewController2 to viewController3 by using the following code
performSegueWithIdentifier("viewController3", sender: scoreColorArray);
It's all fine. Now I want to back from viewController3 to viewController1. My problem it is not going to viewController1 it is going to viewController2. I know the reason viewController2 not dismissed.
I want to dismiss the current view controller and start new one. How can I do it? I know there is some ways to do it, please someone help me to finds the issue.
回答1:
Since your presentation sequence is VC1
-> VC2
-> VC3
you need to call self.presentingViewController?.presentingViewController?.dismissViewControllerAanimated
on VC3
, traversing this way your sequence in reverse.
回答2:
You can achieve it by using delegate.
- You send delegate call from
controller 2
tocontroller 1
for dismiss controller 2. - After dismiss success, you will push
controller 3
fromcontroller 1
You can look my demo for this case: Demo Pushview
来源:https://stackoverflow.com/questions/34197729/how-to-dismiss-viewcontroller-ios-swift