简体   繁体   中英

Dismiss Current View controller and open new view controller - ios Swift

I have three view controllers. Now I am in second view controller. I want to dismiss my current view controller and open third view controller. How can I do it? I can dismiss third view controller as well as second view controller by using the following code.

self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(false, completion: nil)

My problem here is when I use this function screen flickering. That means the second view controller showing and dismissed. So how can I do it?

I want to dissmiss the currentview cotroller and open new view controller

It is possible in Android. So I hope it is possible in ios too. How can I achieve this. Please some one help me.

Edit 1:

I try to dissmiss the current view controller and open new view controller using the following code. Then my second and third both are closed.

self.dismissViewControllerAnimated(false) {
    // go back to MainMenuView as the eyes of the user
    presentingViewController.dismissViewControllerAnimated(false, completion: nil)
}

I found the solution

I change all the view controller to the child of navigation controller. And remove the history from the third view controller like the following

let tempVCA = self.navigationController!.viewControllers
        for tempVC: UIViewController in tempVCA {
            if (tempVC is SECONDVC) {
                tempVC.removeFromParentViewController()
            }
        }

I am using this piece of code from the Third view controller's viewdidload func

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM