Как изменить текст BarButtonItem на NavigationBar?
Я пытаюсь создать список элементов, которые можно редактировать. Что-то вроде этого:
![enter image description here]()
С этой целью я добавил навигацию в верхнюю часть представления, а затем добавил 2 элемента кнопки бара в дизайне XCode. Я установил идентификатор кнопки слева, чтобы добавить, для кнопки справа на "Правка".
Когда я нажимаю "Изменить", я хочу изменить текст на "Готово". Я пробовал разные способы, например. btnEdit.Title = "Done"
, но это просто не требуется.
Я видел несколько сообщений в блогах, рекомендующих .SetTitle, но UIButtonBarItem не имеет этого метода (по крайней мере, в MonoTouch).
Итак, как я могу изменить заголовок кнопки "Изменить"?
Ответы
Ответ 1
Я решил это. Ключ был в том, что я установил идентификатор кнопки "Редактировать" на системное значение (например, UIBarButtonSystemItemEdit), и вы не можете изменить текст этих (имеет смысл сейчас). Я изменил идентификатор на пользовательский и установил. Титул работал нормально.
Ответ 2
Почему бы вам не попробовать изменить свойство navigationItem.rightbarButtonItem
?
1. Настройте две кнопки: одну для редактирования и одну для завершения
UIBarButtonItem*editButton=[[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStylePlain target:self action:@selector(editAction)];
UIBarButtonItem*doneButton=[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(doneAction)];
2. И везде, где это необходимо, в editAction
предпочтительнее изменить rightBarButtonItem
как:
self.navigationItem.rightBarButtonItem=doneButton;
И если вам нужна editButton
back
self.navigationItem.rightBarButtonItem=editButton;
Ответ 3
if ([self.navigationItem.rightBarButtonItem.title isEqualToString:@"Edit"])
{
self.navigationItem.rightBarButtonItem.title= @"Done";
}
надеюсь, что это поможет. счастливое кодирование:)
Ответ 4
Работает для меня как UIBarButtonItem * btnEdit; является членом класса в .h;
btnEdit = [[UIBarButtonItem alloc]initWithTitle:@"Edit" style:UIBarButtonItemStyleBordered target:self action:@selector(btnEditClicked)];
self.navigationItem.leftBarButtonItem = btnEdit;
//[btnEdit release];
Теперь вызывается селектор:
-(void)btnEditClicked
{
if([btnEdit.title isEqualToString:@"Edit"])
{
[btnEdit setTitle:@"Done"];
}
else
{
[btnEdit setTitle:@"Edit"];
}
}
Ответ 5
Управляйте перетаскиванием с панели на файл (с помощью редактора помощников), создайте выход (в этом случае его называете "barButton" ). Затем добавьте следующее:
Swift 3.0:
self.barButton.title = "New title"
Ответ 6
Новая кнопка, как показано ниже..
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "title", style: UIBarButtonItemStyle.plain, target: self, action: #selector(actionMethod))