Storyboard - setting delegates

Morrowless picture Morrowless · Jan 24, 2012 · Viewed 8k times · Source

Before storyboards I was able to set delegates and datasources just by dragging an outlet to a class. With storyboards, I cannot drag the outlet to another view controller; there is no destination that will respond to it.

If I click on a view controller object, I am able to see the class owner at the bottom, but as soon as I select the other view controller containing the outlet, the old selection is gone, so I cannot connect the two.

Is this Apple's way of saying we should only connect them programmatically?

Answer

Marco picture Marco · Jan 25, 2012

Correct. Set the delegate or other data in your prepareForSegue:sender: method. Here is an example:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Check the segue identifier
    if ([segue.identifier isEqualToString:@"showDetail"])
    {
        // Get a reference to your custom view controller
        CustomViewController *customViewController = segue.destinationViewController;

        // Set your custom view controller's delegate
        customViewController.delegate = self;
    }
}