Я взял проект, основанный на стандартном шаблоне iPad SplitViewerController, и реализовал рекурсивную навигацию с переходом вниз на любое количество уровней следующим образом:
Сначала я создал новый контроллер представления (названный NavItemController), на который я попалстек контроллера в методе didSelectRowAtIndexPath RootViewController следующим образом:
NavItemController *navItemController = [[NavItemController alloc] initWithNibName:@"NavItemController" bundle:[NSBundle mainBundle]];
navItemController.title = catalogue.name;
[[self navigationController] pushViewController:navItemController animated:YES];
Затем я использую этот контроллер представления для всей навигации вверх и вниз по моей древовидной структуре (поэтому RootViewController теперь используется только для отображения начального корняуровень навигации, т. е. элементы без родителя).
Это все работает хорошо.
Теперь я пытаюсь обновить метку в подробном представлении (detailViewDescriptionLabel), когда я выбираю элемент в NavItemController.,Для этого я сначала добавил выход в свой NavItemController:
@property (nonatomic, strong) IBOutlet DetailViewController *detailViewController;
и настроил его в InterfaceBuilder, добавив контроллер представления из библиотеки в список объектов, изменив его класс на DetailViewController и подключив выходкоторый я обнаружил в разделе «Владелец файла».
На этом этапе, когда я перехожу через мой код, я обнаруживаю, что он правильно устанавливает detailItem в моем подробном представлении для объекта, выбранного в моем NavController - и, кажется, правильно устанавливает detailDescriptionLabelЗначение .text для значения из этого detailItem.Однако это не отражается в пользовательском интерфейсе (он все еще работает, если я делаю это из RootViewController).
Я предполагаю, что я что-то неправильно подключил или где-то пропустил шаг - я (очевидно) довольно новичок в iOS - любые указатели приветствуются.