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

Добавление левой кнопки в UINavigationBar (iPhone)

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

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

Однако никаких левых кнопок не отображается. Что-то мне нужно сделать?

4b9b3361

Ответ 1

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

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

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

- (void) cancelEdit: (id) sender;

Ответ 2

На самом деле есть еще один ответ, который не указан здесь, но может быть очень полезным во многих случаях. Если вы не хотите использовать 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 со строкой и кнопками, но не хотите накладных расходов на навигацию.

Ответ 3

По этому вопросу:

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

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

...(beginning of line)... @selector(Place Cursor Here, press Esc) ...

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

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

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

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

-(IBAction) mySelector:(id)sender;