Как добавить кнопку к UINavigationBar?

Как добавить кнопку к UINavigationBar программно?

115
задан TheNeil 20 May 2019 в 19:26
поделиться

2 ответа

Пример кода для установки правой кнопки на панели навигации .

UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
    style:UIBarButtonItemStyleDone target:nil action:nil];
UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@"Title"];
item.rightBarButtonItem = rightButton;
item.hidesBackButton = YES;
[bar pushNavigationItem:item animated:NO];

Но обычно у вас есть NavigationController , позволяющий писать:

UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
    style:UIBarButtonItemStyleDone target:nil action:nil];
self.navigationItem.rightBarButtonItem = rightButton;
294
ответ дан 24 November 2019 в 02:19
поделиться

Ответы выше хороши, но я хотел бы дополнить их еще несколькими советами:

Если вы хотите изменить заголовок кнопки возврата (стрелка-y, указывающая на то, что слева от панель навигации), вы ДОЛЖНЫ сделать это в ПРЕДЫДУЩЕМ контроллере представления, а не в том, для которого он будет отображаться. Это как сказать «эй, если вы когда-нибудь нажмете другой контроллер представления поверх этого, вызовите кнопку« Назад »(или что-то еще) вместо кнопки по умолчанию»

. Если вы хотите скрыть кнопку возврата во время особого состояние, например, пока отображается UIPickerView, используйте self.navigationItem.hidesBackButton = YES; и не забудьте вернуть его обратно при выходе из особого состояния.

Если вы хотите отобразить одну из специальных символических кнопок, используйте форму initWithBarButtonSystemItem: target: action со значением вроде UIBarButtonSystemItemAdd

Помните, что значение этого символа зависит от вы, но будьте осторожны с Руководством по человеческому интерфейсу. Использование UIBarButtonSystemItemAdd для обозначения удаления элемента, вероятно, приведет к отклонению вашего приложения.

20
ответ дан 24 November 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: