self.title против self.navigationItem.title - PullRequest
19 голосов
/ 06 июня 2009

Какова цель свойства title UIViewController, заголовок уже не может быть установлен с navigationItem.title?

Кажется, что оба работают, мне просто интересно, почему есть эта, казалось бы, дублированная функциональность.

Ответы [ 4 ]

24 голосов
/ 09 января 2012

В UIViewController заголовок и navigationItem.title различаются. Один пример: если у вас есть контроллер представления (в NavigationController) в UITabBarController, то если вы установите self.title, он переопределяет имя вкладки, а также верхний заголовок. Если вы установите self.navigationItem.title, то он только изменит верхний заголовок, оставив имя панели вкладок без изменений.

8 голосов
/ 07 июня 2009

Название контроллера представления - это и соглашение, и удобство для вас, как для программиста. Вызов ...

self.title = @"Some Title";

или

[self setTitle:@"Some Title"];

гарантирует, что любой объект (например, панель навигации), которому необходимо получить заголовок вашего контроллера представления, может это сделать. Использование navigationItem.title позволит вам переопределить этот заголовок по мере необходимости, но может оказаться более «стильным» установить вместо него заголовок вашего контроллера.

IMO, вы можете сделать любой, но первый сэкономит вам немного ввода; -)

Cheers-

7 голосов
/ 07 июня 2009

Когда вы устанавливаете navigationItem.title, вы устанавливаете заголовок панели навигации в верхней части экрана. Это важно, когда вы нажимаете новый контроллер представления, потому что заголовок предыдущего представления (как установлено navigationItem.title) будет текстом кнопки возврата. Кроме того, если в вашем проекте нет панели навигации, navigationItem.title не будет работать.

Apple дает следующее описание для свойства title UIViewController.

Локализованная строка, представляющая представление, которым управляет этот контроллер.

3 голосов
/ 16 августа 2010

UIViewController имеет свойство title. в navigationItem и tabBarItem оба переопределяют свойство title. так что если у нас есть приложение с tabbar и navigationcontroller.and, установив self.title = @ "somethng", мы установим этот заголовок как navigationTitle и tabBartitle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...