Как я могу поместить кнопку "info" на панели навигации iPhone?
Я хочу установить кнопку "i" на панели навигации (на всех экранах, на которых отображается панель навигации). Прикосновение к этой кнопке должно вызвать представление (возможно, модальное), в котором у меня могут быть элементы управления. Как поместить кнопку на панель навигации и как я могу выполнить вызов?
Ответы
Ответ 1
Код кнопки информации:
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(infoButtonAction) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *modalButton = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
[self.navigationItem setLeftBarButtonItem:modalButton animated:YES];
[modalButton release];
Код выше метода вызовов - (void) infoButtonAction. Добавьте это ко всем своим ViewControllers или просто создайте один .nib и используйте это для всех своих просмотров.
Ответ 2
Вы также можете добиться этого на раскадровке. Сделайте UIButton для вашей навигационной панели вместо обычного UIBarButtonItem. Вы увидите, что ваш раскладушка будет "вложен" внутри элемента кнопки панели, который можно развернуть.
![введите описание изображения здесь]()
Затем вы можете изменить свойство типа кнопки на информационный свет | темный от инспектора атрибутов.
![введите описание изображения здесь]()