Программирование на iOS: понимание UINavigationController и RootViewController - PullRequest
2 голосов
/ 16 апреля 2011

Я читаю Apple Doc, но я не понимаю, что такое корневой контроллер. Док говорит, что это контроллер в нижней части стека. Может быть, это контроллер, который я нажимаю в первый раз? Кто-нибудь может объяснить это понятие?

Из Apple doc UINavigationController , я видел, что есть метод, называемый initWithRootViewController

Инициализирует и возвращает заново Создан навигационный контроллер. - (id) initWithRootViewController: (UIViewController *) RootViewController

Что это значит? Тогда можно ли изменить контроллер корневого представления или нет?

Ответы [ 2 ]

2 голосов
/ 02 октября 2011

Помните, что rootViewController не тип объекта, а имя свойства.Это просто случайный экземпляр UIViewController внизу стека, как сказал Нуббель.

Методы типа initWithRootViewController предназначены для ситуаций, когда вы хотите инициализировать UINavigationController, а также сказать ему:«использовать этот VC как первый VC в иерархии».

Кажется, UINavigationController действительно не хочет, чтобы вы изменили это свойство после того, как оно было создано, но похоже, что PPL нашлиспособы сделать это : - Не забудьте проверить комментарии, чтобы убедиться, что это «одобренный» метод работы.

1 голос
/ 16 апреля 2011

Точно так же, как Docs и вы уже сказали, это контроллер в нижней части стека, первый контроллер, помещенный в стек. Последующие контроллеры будут помещены поверх RootViewController. Чтобы вернуться к RootViewController, вы можете использовать метод popToRootViewControllerAnimated:. Кроме того, вы не можете изменить RootViewController!

...