Вопрос

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

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

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

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

Решение

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

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

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

- (void) cancelEdit: (id) sender;

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

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

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

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

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

...(beginning of line)... @selector(Поместите курсор сюда, нажмите Esc) ...

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

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

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

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

-(IBAction) mySelector:(id)sender;

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