Я видел много приложений, у которых есть информационная кнопка (буква "i" с кругом вокруг нее) на панели uinavigationbar. Как добавить этот тип кнопки?
Как создать информационную кнопку на uinavigationbar на iphone
Ответ 1
Предыдущий ответ был близок, не совсем скомпилировался. Вот что вы действительно хотите:
// Info button
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
Ответ 2
В ответе выше есть утечка памяти. Вы должны использовать "autorelease", чтобы избежать этого. Я попытался отредактировать ответ, но пока не удалось.
// Info button
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:infoButton] autorelease];
ЭТО ПРАВИЛЬНЫЙ ПУТЬ ДЕЛАТЬ ЭТО.
Ответ 3
Вы должны добавить кнопку типа "Инфо-свет" в элемент навигации диспетчера представлений, который отображает UINavigationController. Что-то вроде этого может пойти в вашем коде контроллера:
- (void) viewDidLoad {
UIButton * info = [UIButton buttonWithType:UIButtonTypeInfoLight];
// set your button target and selector for whatever action here.
self.navigationItem.rightBarButtonItem.customView = info;
}
Ответ 4
Вы также можете использовать свою текущую цель и селектор кнопки для своей информационной кнопки.
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self.barButtonItem.target action:self.barButtonItem.action forControlEvents:UIControlEventTouchUpInside];
self.barButtonItem.customView = infoButton;
Таким образом, любые действия или сегменты, связанные с элементом панели, будут переданы на вашу информационную кнопку.