Подтвердить что ты не робот

Раскадровка - задание делегатов

Перед раскадрой я смог установить делегаты и источники данных, просто перетащив розетку в класс. С раскадровки я не могу перетащить розетку в другой контроллер; нет адресата, который будет отвечать на него.

Если я нажму на объект контроллера представления, я могу увидеть владельца класса внизу, но как только я выберу другой контроллер представления, содержащий выход, старый выбор исчез, поэтому я не могу подключить два.

Является ли этот способ Apple сказать, что мы должны только подключать их программно?

4b9b3361

Ответ 1

Правильно. Установите делегат или другие данные в свой метод prepareForSegue:sender:. Вот пример:

- (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 delegate
        customViewController.delegate = self;
    }
}

Ответ 2

Если ваш раскадровки segue destination View Controller является UIViewController, тогда ответ @Marco прав. Но если ваш диспетчер View View - это UINavigationViewController, вы должны получить UIViewController из UINavigationViewController:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Check the segue identifier
    if ([segue.identifier isEqualToString:@"chooseCategoryType"])
    {
        // Get a reference of your custom view controller if your segue connection is an UIViewController
        // CustomViewController *customViewController = segue.destinationViewController;
        // Get a reference of your custom view controller from navigation view controller if your segue connection is an UINavigationViewController
        CustomViewController *customViewController = [[[segue destinationViewController] viewControllers] objectAtIndex:0];

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