Как изменить название кнопки "Редактировать/Готово" в UINavigationBar
Если режим редактирования включен для просмотра таблицы, он показывает кнопку под названием "Правка", при нажатии на нее она изменяет заголовок на выполненный
Мне было интересно, есть ли способ изменить название Done Button на что-то еще?
i уже изменил заголовок для сделанной кнопки.
используемый мной код
self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.editButtonItem.title = @"Change";
Теперь Edit is Change
Как сделать Готово к чему-то еще?
Ответы
Ответ 1
Вы можете изменить заголовок кнопки редактирования следующим образом: -
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
// Make sure you call super first
[super setEditing:editing animated:animated];
if (editing)
{
self.editButtonItem.title = NSLocalizedString(@"Cancel", @"Cancel");
}
else
{
self.editButtonItem.title = NSLocalizedString(@"Edit", @"Edit");
}
}
работает как править: -
![enter image description here]()
К
![enter image description here]()
Ответ 2
Вот способ его изменения для Swift
override func setEditing (editing:Bool, animated:Bool)
{
super.setEditing(editing,animated:animated)
if (self.editing) {
self.editButtonItem().title = "Editing"
}
else {
self.editButtonItem().title = "Not Editing"
}
}
Ответ 3
Основываясь на Nitin answer Я предлагаю немного другой подход, который использует встроенные элементы UIButtonBar
.
Это даст вашему интерфейсу внешний вид системы. Например, стандартная кнопка "Готово" для прекращения редактирования должна иметь определенный вид жирный на iOS 8.
Этот подход также предоставляет вам бесплатную локализацию строк.
Вот код, который у меня есть:
-(IBAction) toggleEditing:(id)sender
{
[self setEditing: !self.editing animated: YES];
}
-(void) setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing: editing animated: animated];
const UIBarButtonSystemItem systemItem =
editing ?
UIBarButtonSystemItemDone :
UIBarButtonSystemItemEdit;
UIBarButtonItem *const newButton =
[[UIBarButtonItem alloc]
initWithBarButtonSystemItem: systemItem
target: self
action: @selector(toggleEditing:)];
[self.navigationItem setRightBarButtonItems: @[newButton] animated: YES];
}
Пример здесь для случая, когда ваш UIViewController
размещен в UINavigationController
, и поэтому имеет экземпляр UINavigationItem
. Если вы этого не сделаете, вам необходимо соответствующим образом обновить элемент панели.
В вашем viewDidLoad
используйте следующий вызов, чтобы настроить кнопку редактирования, готовую для использования:
[self setEditing: NO animated: NO];