Подтвердить что ты не робот

Какая разница между 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 не совпадают.

4b9b3361

Ответ 1

Я верю, что вы спрашиваете следующее: self.navigationController.navigationItem и self.navigationItem. Я игнорирую остальную часть вопроса, так как это не очень важно для вопроса.

Из того, что я понимаю, self.navigationController.navigationItem бесполезен, так как он обращается к навигационному элементу навигационного контроллера (т.е. ваш rootViewController). Что вы действительно хотите, это self.navigationItem, элемент навигации контроллера вида, потому что это то, отображается в вашем контроллере вида.

UINavigationController является подклассом UIViewController, поэтому self.navigationController.navigationItem является просто методом переполнения из подкласса. Это не делает ничего позитивного (по крайней мере, по моему опыту).

Изменить: прочитайте этот для дальнейшего уточнения.

Ответ 2

Они разные. Если вы динамически добавляете UINavigationController, то вы используете self.navigationController.navigationItem.

Пожалуйста, лучше уточните свой вопрос.