Открыть модальный переход с помощью метода 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;
}
}