Summary of common Storyboard methods-essence edition and storyboard essence Edition
1. prepareForSegue:
Now we know what the destinationViewController is we can set its data properties. To receive information back from a scene we use delegation. Both are shown simply in the following code snipped.
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if([[segue identifier] isEqualToString:@"ContactsViewControllerSegue"]){ ContactsViewController *cvc = (ContactsViewController *)[segue destinationViewController]; cvc.contacts = self.contacts; cvc.delegate = self; }} |
A final note about UIStoryboardSegue is that when you choose a popover transition you must get access to the popover in order to dismiss it. you can get this by casting the seue to a UIStoryboardPopoverSegue but only after you have checked the identity of the seue to ensure you are making the correct cast.
2. UITableViewCell:
static NSString *CellIdentifier = @"ContactsCell"; ContactsTableViewCell *cell = (ContactsTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; cell.contact = [contacts objectAtIndex:indexPath.row]; |
Note: That you can have as your different prototype cells as you wish the only requirement is that you set each one with a unique cell identifier.
It is also possible to create Segues between cells and ViewControllers to transition to a new scene when a cell is tapped. in the following screen shot you can see how to connect a cell to a UIViewController and by specifying Push as the transition mode we now have a detailed view pushed on whenever a cell is tapped.
3. UIViewController:
UIStoryboard is a runtime representation of everything configured inside Interface Builder as such any individual scene can be loaded using either,
[UIStoryboard instantiateInitalViewController][UIStoryboard InstantiateViewControllerWithIdentifier]
Shocould you choose to split your application into SS multiple Storyboards these can be loaded using,
[UIStoryboard storyboardWithName:bundle:]