How to dismiss VIewController iOS Swift

你说的曾经没有我的故事 提交于 2019-12-12 06:56:25

问题


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?.dismissViewControllerA‌​animated on VC3, traversing this way your sequence in reverse.




回答2:


You can achieve it by using delegate.

  • You send delegate call from controller 2 to controller 1 for dismiss controller 2.
  • After dismiss success, you will push controller 3 from controller 1

You can look my demo for this case: Demo Pushview



来源:https://stackoverflow.com/questions/34197729/how-to-dismiss-viewcontroller-ios-swift

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!