как создать информационную кнопку на панели навигации на iPhone

StackOverflow https://stackoverflow.com/questions/1456088

Вопрос

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

Это было полезно?

Решение

Предыдущий ответ был близок, не совсем скомпилирован.Вот чего вы действительно хотите:

// Info button
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];

Другие советы

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

// Info button
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:infoButton] autorelease];

ЭТО ПРАВИЛЬНЫЙ СПОСОБ СДЕЛАТЬ ЭТО.

Вы должны иметь возможность добавить кнопку типа "Info Light" в navigationItem контроллера представления, который в данный момент отображает UINavigationController.Что-то подобное могло бы быть в коде вашего view controller:

- (void) viewDidLoad {
  UIButton * info = [UIButton buttonWithType:UIButtonTypeInfoLight];
  // set your button's target and selector for whatever action here.
  self.navigationItem.rightBarButtonItem.customView = info;
}

Вы также можете использовать цель и селектор элемента вашей текущей кнопки панели для вашей информационной кнопки.

UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self.barButtonItem.target action:self.barButtonItem.action forControlEvents:UIControlEventTouchUpInside];
self.barButtonItem.customView = infoButton;

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top