Передача данных через контроллер представления, контроллер панели вкладок, контроллер навигации и просмотр контроллера
Это, вероятно, что-то действительно простое для достижения, но я новичок в программировании для iOS, и я, кажется, застрял.
Итак, у меня есть приложение с вкладками. Я решил, что хочу панель навигации, в дополнение к панели вкладок. Для этого я поместил контроллер панели вкладок, а затем добавил контроллеры представления и встроил его в контроллер навигации для каждого контроллера представления, который затем подключается к панели вкладок.
Моя иерархия в раскадровке выглядит примерно так:
Контроллер представленияКонтроллер панели вкладокНавигационный контроллерКонтроллер представленияНавигационный контроллерКонтроллер представленияЯ застрял здесь, когда пытаюсь передать данные из первого View Controller и в любой другой View Controller. Перед добавлением в контроллеры навигации я использовал метод prepareForSegue для передачи данных, например так:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"logged"])
{
UITabBarController *tabar=segue.destinationViewController;
SecondViewController *svc=[tabar.viewControllers objectAtIndex:1];
svc.groupArray = [(NSArray*)sender objectAtIndex:0];
svc.userArray = [(NSArray*)sender objectAtIndex:1];
svc.taskArray = [(NSMutableArray*)sender objectAtIndex:2];
svc.selfArray = [(NSMutableArray*)sender objectAtIndex:3];
[tabar setSelectedIndex:1];
}
}
Как вы можете видеть, я передавал данные своему второму контроллеру представления и установил индекс панели вкладок на 1, используя метод executeSegueWithIdentifier, поскольку я хотел открыть вторую страницу. Все это работало просто отлично, пока я не представил в своем коде навигационные контроллеры, так как мне нужны панели навигации. Вот когда все в значительной степени сломалось. Если я пытаюсь запустить код как есть, приложение вылетает со следующим выводом в консоли:
[UINavigationController setGroupArray:]: нераспознанный селектор, отправленный экземпляру 0x7ffa6acec620
*** Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «- [UINavigationController setGroupArray:]: нераспознанный селектор, отправленный экземпляру 0x7ffa6acec620»
Я попытался немного поиграться с кодом, но, похоже, ничего не работает на самом деле. Я просто очень смущен, и, возможно, намек на правильное направление поможет мне немного.