Программирование на iOS: понимание UINavigationController и RootViewController

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

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

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

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

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам