Открыть модальный переход с помощью метода prepareForSegue вылетает приложение

Я открываю модальный контроллер вида в моем приложении, этот модальный контроллер вида содержит DatePicker.

Иерархия навигации приложения

TabbarController->NavigationController->ViewController->ViewController

Я поместил segue из первого ViewController во второй и открыл его в модальном segue.

Я поместил Identifier в модальную segue, и подключил пользовательский класс тоже.

Но когда я пишу prepareForSegue Метод приложение вылетает со следующей ошибкой.

Завершение работы приложения из-за необработанного исключения "NSInvalidArgumentException", причина: "-[DatePickerViewController viewControllers]: нераспознанный селектор, отправленный экземпляру 0xa082360"

Код для prepareForSegue является

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"AddDate"])
    {
         UINavigationController *navigationController =segue.destinationViewController;

         DatePickerViewController *datePickerViewController =[[navigationController viewControllers] objectAtIndex:0];
         datePickerViewController.delegate = self;

    }
}

Я следовал этому уроку для модального сегмента http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2.

1 ответ

Решение

Я думаю, что вы связали свой переход с контроллером представления, а не с контроллером навигации. Чтобы это исправить, замените ваш код на:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"AddDate"])
    {
         DatePickerViewController *datePickerViewController = (DatePickerViewController*)segue.destinationViewController;
         datePickerViewController.delegate = self;

    }
}
Другие вопросы по тегам