правая кнопка не отображается - PullRequest
0 голосов
/ 23 июня 2011

У меня есть следующий код для ввода rightbarbuttonitem

UIButton* rightbutton = [UIButton buttonWithType:UIButtonTypeCustom];
    [rightbutton setBackgroundImage:[UIImage imageNamed:@"share-icon.png"] forState:UIControlStateNormal];
    [rightbutton addTarget:self action:@selector(share:) forControlEvents:UIControlEventTouchUpInside];
    self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:rightbutton] autorelease];

Но он не показывает никакого barbuttonitem.Вместо этого, если я использую следующий код, тогда появляется элемент с кнопками, но проблема в том, что я не могу установить событие касания с этим кодом на элементе barbuttonitem.

UIImageView *iconView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"dashboard-icon.png"]];
    UIBarButtonItem *icon = [[UIBarButtonItem alloc] initWithCustomView:iconView];
    self.navigationItem.leftBarButtonItem=icon;
    [icon release];
    [iconView release];

Ответы [ 4 ]

7 голосов
/ 10 февраля 2012

я предполагаю, что вы добавили UIBarButtonItem к неправильному объекту!вам нужно добавить его в rootViewController (вместо UINavigationController, как вы, вероятно, сделали)

YourRootViewController *theRootController = [[YourRootViewController alloc] init];

UINavigationController* navContainer = [[UINavigationController alloc] initWithRootViewController:theRootController];

UIButton* rightbutton = [UIButton buttonWithType:UIButtonTypeCustom];
    [rightbutton setBackgroundImage:[UIImage imageNamed:@"share-icon.png"] forState:UIControlStateNormal];
    [rightbutton addTarget:self action:@selector(share:) forControlEvents:UIControlEventTouchUpInside];
 theRootController.navigationItem.rightBarButtonItem = rightbutton;

[navContainer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:navContainer animated:YES];
2 голосов
/ 30 марта 2015

Не забудьте установить tintColor на UIBarButtonItem, если вы используете белую панель навигации. Мои кнопки были там, но невидимы.

1 голос
/ 23 июня 2011

Вы пытались установить соответствующий кадр для rightbutton? например rightbutton.frame = (CGRect){CGPointZero, image.size};

Также обратите внимание:

В iOS 4 и более поздних версиях файл не требуется указывать расширение файла До iOS 4, Вы должны указать имя файла расширение.

0 голосов
/ 25 ноября 2016

Использование swift 3.0 для iOS 10.0

let customButton = UIBarButtonItem (title: "Right", style: .plain, target: self, action: #selector (yeah)) customButton.width = 100.0 navigationItem.rightBarButtonItem= customButton

func да (отправитель: UIBarButtonItem) {print ("Эй, твой мужчина / женщина")}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...