Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pop view controller to one of the previous view controllers in swift?

Tags:

I have been trying to pop my view controller to one of previous view controllers in my view stack. Assume that, There are firstVC, secondVC, thirdVC and fourthVC viewcontrollers in my view stack. The current view controller is fourth one, and there is a tableview in fourthVC. If user delete all the rows in tableview, I should direct the user to secondVC. I had an idea that I would create another navigationcontroller and present it with presentViewController command. However, this is not a solution for my problem. Because I thougt that a navigation problem appears for this case. How can I find best solution for this case ?

Thank you for your answers, Best regards

like image 330
serhanaksut Avatar asked Oct 13 '14 15:10

serhanaksut


People also ask

How do I pop two viewControllers at a time in Swift?

There's also a setViewControllers(_:animated:) to include the pop animation. Alternatively you could find the second last view controller in the viewControllers array and then use popToViewController to avoid overwriting the entire view controller stack.


1 Answers

Instead of doing a generic popViewControllerAnimated: call, use popToViewController:animated:. You could detect if the user has deleted all of the rows in which case, do something like this (otherwise just pop one view controller):

let viewControllers: [UIViewController] = self.navigationController!.viewControllers as [UIViewController]; self.navigationController!.popToViewController(viewControllers[viewControllers.count - 2], animated: true); 
like image 147
Aaron Wojnowski Avatar answered Oct 14 '22 10:10

Aaron Wojnowski