UIViewController
был разработан для совместной работы с UINavigationController
. При нажатии на новое представление UINavigationController
будет вставлять ссылки на себя и на UINavigationItem
, содержащее метаданные о навигации (кнопка «Назад» с названием представления позади него и т. Д.).
Как правило, вы хотите инициализировать UINavigationController
с помощью Interface Builder, используя поле «Имя NIB» для указания «корневого контроллера представления» (т. Е. Первого появившегося представления, которое не должно иметь кнопку возврата). Эквивалент в коде выглядит примерно так:
UIViewController *rootController = [[UIViewController alloc] initWithNibName:@"RootController"];
UINavigationController *navCtl = [[UINavigationController alloc] initWithRootController:rootcontroller];
Затем, когда вам нужно добавить новый контроллер представления (возможно, в вашем didSelectRowAtIndexPath
методе делегата в вашем rootController)
SecondViewController *secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController"];
[self.navigationController pushViewController:secondViewController];
[secondViewController release];
Обратите внимание, что вам не нужно было создавать свойство self.navigationController
, оно уже определено в UIViewController
и будет введено с правильной ссылкой в зависимости от текущего состояния навигации. Работает как по волшебству!