Какая разница между UINavigationController и UINavigationItem
Я не понимаю, в чем разница между
self.navigationcontroller.navigationitem
и self.navigationitem
у меня есть приложение на основе навигации и в методе viewDidLoad
в rootViewController
для navigationController. Я установил для NavigationItem titleView пользовательский образ, используя этот код
UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
self.navigationItem.titleView =titleImage;
кстати, если я попытаюсь изменить заголовок таким образом
UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
self.navigationcontroller.navigationItem.titleView =titleImage;
ничего не произошло.
, и когда навигационный контроллер переталкивает другое представление в стек, заголовок заголовка navigationitem очищается и набор ссылок равен нулю, а также я заметил, что ссылки self.navigationcontroller.navigationitem
и self.navigationitem
не совпадают.
Ответы
Ответ 1
Я верю, что вы спрашиваете следующее: self.navigationController.navigationItem
и self.navigationItem
. Я игнорирую остальную часть вопроса, так как это не очень важно для вопроса.
Из того, что я понимаю, self.navigationController.navigationItem
бесполезен, так как он обращается к навигационному элементу навигационного контроллера (т.е. ваш rootViewController). Что вы действительно хотите, это self.navigationItem
, элемент навигации контроллера вида, потому что это то, отображается в вашем контроллере вида.
UINavigationController
является подклассом UIViewController
, поэтому self.navigationController.navigationItem
является просто методом переполнения из подкласса. Это не делает ничего позитивного (по крайней мере, по моему опыту).
Изменить: прочитайте этот для дальнейшего уточнения.
Ответ 2
Они разные. Если вы динамически добавляете UINavigationController
, то вы используете self.navigationController.navigationItem
.
Пожалуйста, лучше уточните свой вопрос.