#objective-c #ios #uinavigationcontroller #uibarbuttonitem #mainwindow
#objective-c #iOS #uinavigationcontroller #uibarbuttonitem #mainwindow
Вопрос:
В настоящее время у меня есть главное окно, настроенное как UINavigationController (также является контроллером корневого представления), и у меня есть два представления. Первое представление — это экран входа в систему, а второй экран — экран просмотра таблицы. Чего бы я хотел, так это чтобы отображались разные UIBarButtonItems в зависимости от того, какой экран отображается. Например, когда отображается экран входа в систему, я хочу, чтобы на панели навигации отображалась левая кнопка (более конкретно, это была бы кнопка настроек перед входом в систему). Как только пользователь войдет в систему, я хочу, чтобы на левой кнопке было написано «Выход», а на правой — кнопка перезагрузки. Я пробовал программно добавлять кнопки, но они не отображаются. Есть предложения?
Кроме того, я сделал большую часть этого в IB, но я чувствую, что, вероятно, было бы проще добавить эти кнопки программно.
Ответ №1:
У всех подклассов UIViewController
есть свойство, вызываемое navigationItem
. Пока он доступен только для чтения, вы можете изменять его свойства. Так что в LoginViewController
вы бы сделали self.navigationItem.leftBarButtonItem = /* Code to create the bar button */
и аналогично в TableViewController
. Дайте мне знать, если вам понадобится больше деталей.
Комментарии:
1. Понятно, я думаю, что буду придерживаться этого подхода. Я действительно читал об этом, но у меня ничего не получилось. Спасибо!