iphone настраиваемая навигация Бар синглтон или нет? - PullRequest
1 голос
/ 27 октября 2009

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

Должен ли я передавать ссылку на панель навигации каждый раз, когда я показываю новое представление, или просто сделать его одноэлементным, чтобы я мог получить к нему доступ из любого представления?

Ответы [ 3 ]

3 голосов
/ 27 октября 2009

Ни.

Вы указали добавление кнопок и изменение названий в качестве причин, по которым вам нужна настраиваемая панель инструментов, но обе эти вещи можно выполнить с помощью контроллера навигации без необходимости создавать свои собственные и, следовательно, не нужно создавать одиночный или глобальная переменная.

Когда вы нажимаете новый контроллер представления, вы можете установить заголовок для панели навигации, просто вызвав [self setTitle: @ "Nav Title"]; в -viewDidLoad этого контроллера представления. Если вам нужно добавить кнопку, используйте код, подобный следующему (также в -viewDidLoad):

[[self navigationItem] setRightBarButtonItem:[[[UIBarButtonItem alloc]
        initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
                             target:self 
                             action:@selector(setEditing)] autorelease]];

Другими словами, ваш дизайн имеет недостатки, если вы создаете пользовательскую панель навигации только по указанным вами причинам. Я полагаю, есть несколько веских причин для создания пользовательской панели навигации, но их нет среди них.

Рассмотрите возможность просмотра Конфигурирование объекта элемента навигации раздела Руководство по программированию контроллера представления для iPhone OS .

С уважением,

2 голосов
/ 27 октября 2009

Используете ли вы UINavigationController? Если это так, вы можете получить доступ к панели навигации из любого субконтроллера, как это:

UINavigationBar *bar = self.navigationController.navigationBar;
0 голосов
/ 27 октября 2009

Сделать его глобальной переменной.

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