Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Storyboard Segue From View Controller to Itself

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:

enter image description here

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?

like image 600
Jorge Avatar asked Feb 10 '12 11:02

Jorge


People also ask

How do I segue between view controllers?

To create a segue between view controllers in the same storyboard file, Control-click an appropriate element in the first view controller and drag to the target view controller. The starting point of a segue must be a view or object with a defined action, such as a control, bar button item, or gesture recognizer.

How do you make an unwind segue in a storyboard?

In your storyboard, create an unwind segue by right-clicking a triggering object and dragging to the Exit control at the top of your view controller's scene.


2 Answers

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.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; YourVC *dest = [storyboard instantiateViewControllerWithIdentifier:@"VDI"]; [self.navigationController pushViewController:dest animated:YES]; 

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.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; YourVC *dest = [storyboard instantiateViewControllerWithIdentifier:@"VDI"]; UINavigationController *navController = self.navigationController; [navController popViewControllerAnimated:NO]; [navController pushViewController:dest animated:YES]; 
like image 111
Jim True Avatar answered Oct 16 '22 10:10

Jim True


Using Xcode 5 there is a much simpler solution.

  1. Click the table cell in the storyboard
  2. Open the Connections Inspector (right arrow icon in the upper right)
  3. Under "triggered segues" you see "selection"
  4. Drag from the circle next to "selection" to the cell in the storyboard

That's it.

like image 35
John Henckel Avatar answered Oct 16 '22 09:10

John Henckel