Программирование на 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!