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

Как создать информационную кнопку на uinavigationbar на iphone

Я видел много приложений, у которых есть информационная кнопка (буква "i" с кругом вокруг нее) на панели uinavigationbar. Как добавить этот тип кнопки?

4b9b3361

Ответ 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;

Таким образом, любые действия или сегменты, связанные с элементом панели, будут переданы на вашу информационную кнопку.