segue
It's much more convenient to prepareForSegue where you performSegue.
typedef void (^PrepareForSegueBlock)(UIStoryboardSegue *);
...
- (void)viewThatThing:(Thing *)aThing {
[self performSegueWithIdentifier:@"Thing" sender:^(UIStoryboardSegue *segue) {
ThingViewController *thingViewController = (id)segue.destinationViewController;
thingViewController.theThing = aThing;
thingViewController.delegate = self;
...
}];
}
...
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
((PrepareForSegueBlock)sender)(segue);
}