как создать инфо кнопку на uinavigationbar на iphone - PullRequest
12 голосов
/ 21 сентября 2009

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

Ответы [ 4 ]

31 голосов
/ 22 сентября 2009

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

// Info button
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
3 голосов
/ 03 декабря 2011

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

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

Это правильный способ сделать это.

0 голосов
/ 09 декабря 2014

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

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

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

0 голосов
/ 21 сентября 2009

У вас должна быть возможность добавить кнопку типа «Info Light» к навигационному элементу контроллера представления, который в данный момент отображает UINavigationController. Нечто подобное может появиться в вашем коде контроллера вида:

- (void) viewDidLoad {
  UIButton * info = [UIButton buttonWithType:UIButtonTypeInfoLight];
  // set your button's target and selector for whatever action here.
  self.navigationItem.rightBarButtonItem.customView = info;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...