Добавление левой кнопки в UINavigationBar (iPhone) - PullRequest
27 голосов
/ 19 февраля 2009

Я создал новое приложение для iPhone на основе навигации. Я добавил это в RootViewController.

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] init];
self.navigationItem.leftBarButtonItem = addButton;
self.navigationItem.leftBarButtonItem.enabled = YES;
}

Однако левая кнопка не отображается. Есть ли что-то, что мне нужно сделать?

Ответы [ 3 ]

54 голосов
/ 19 февраля 2009

Вы не определяете, что на самом деле делает кнопка. Это строка из моего приложения:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelEdit:)];

cancelEdit:, селектор, находится в текущем классе (self) и определяется как:

- (void) cancelEdit: (id) sender;
14 голосов
/ 08 октября 2012

На самом деле есть другой ответ, который здесь не указан, но может быть очень полезным во многих случаях. Если вы не хотите использовать UINavigationController , то self.navigationItem не подходит для вас.

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"imageName"] style:UIBarButtonItemStyleBordered target:self action:@selector(action:)];
UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Bar Title"];
navigationItem.leftBarButtonItem = barButton;
[navigationBar pushNavigationItem:navigationItem animated:NO];

Возможно, вы захотите это при создании облегченного UIViewController с панелью и кнопками, но не хотите, чтобы навигационные издержки были.

11 голосов
/ 06 сентября 2009

На этот вопрос:

Здорово, спасибо. Где вы найдете различные селекторы доступны? Док очень расплывчато об этом. Я определил метод экземпляра и положить его как селектор, но он никогда не был выполнен. Я хотел бы, чтобы скользить в подробном кнопка нажата. - 4 февраля пространство 19 в 16: 19

Я иду туда, где мне нужно больше информации, и нажимаю клавишу выхода (Esc). Итак, в этом примере:

...(beginning of line)... @selector(<strong>Place Cursor Here, press Esc</strong>) ...

Появится список доступных селекторов. Для программистов Microsoft это похоже на Intellisense, но вы должны запросить его с помощью Esc (он просто не появляется автоматически, как в Visual Studio). Практически говоря, XCode создает большую часть того, что вы пытаетесь создать, когда вы начинаете печатать, и это действительно помогает, когда вы узнаете, что клавиша Tab - ваш друг. (ну ... это мой друг ... у меня одинокая жизнь)

Теперь, если вам нужен собственный селектор, вы можете разместить там свою метку (например, mySelector :), затем, далее в своем коде, построить его:

- (IBAction)mySelector:(id)sender {<br> NSLog(@"You touched me THERE!");<br> }

Кроме того, в файле заголовка (.h) обязательно укажите соответствующее:

-(IBAction) mySelector:(id)sender;

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