I am trying to make a mechanism to drill down a file / folder list. The idea is to show the same file list view controller every time the user selects a folder, and show a file detail view controller if he/she selects a file.
So far, I have created a segue from the file list view controller to the file detail view controller, and a segue from the file list table view cell to the the file list table view controller:
The issue with this is that as soon as the user taps the cell, the segue is executed. I would like to remove the segue from the table view cell and make one from the file list view controller to itself. That way, I could trigger the right segue programmatically when the user tapped the cell.
So, my question is: Is it possible to create a segue from a view controller to itself in Interface Builder?
If you are using a navigation controller you need to push the ViewController into the nav stack. In this example, i named my ViewController "VDI" in my Storyboard ID setting.
If you don't want the NavigationController to keep adding itself into your "Back" history you can pop the stack before adding to it like so.
Interface Builder approach: Just segue to a storyboard reference which refers back to the presenting view controller.
In IOS 6, there is a cleaner solution than using a phantom button. You can still define the segue from the table cell to the view controller, and look at the sender to cancel the automatically triggered segue:
Instead of performing a segue to the same controller, you can instantiate a view controller (the same one) from storyboard, and then push that onto the navigation controller.
Here's how you can push another instance of the current view controller without defining a segue or hardcoding its own identifier:
You just need to set the Restoration ID to be the same as Storyboard ID (there's a checkbox for that in IB).
Using Xcode 5 there is a much simpler solution.
That's it.