2011-11-17 3 views
0

Итак, у меня есть UINavbarController с кнопками Next и Back на панели инструментов с помощью setLeftBarButtonItem и setRightBarButtonItem. У меня есть куча текстовых полей в таблице ниже, и когда кто-то вступает в текстовое поле, я хочу изменить навигационную панель наРазличные UIToolBar/UINavigatonBar при нажатии UITextField

a) удалить или скрыть кнопки «Отмена» и «Сохранить» b) добавить кнопку «Готово», чтобы закрыть клавиатуру или datepicker

При использовании setRightBarButtonItem/setLeftBarButonItem я не могу удалить или скрыть кнопки Отмена/Сохранить ... только отключить их.

Итак, мой вопрос в том, как я могу отобразить другой UItoolBar при нажатии в текстовом поле для отображения разных кнопок?

ответ

0

Во-первых, почему вы хотите разместить другую панель инструментов, когда у вас уже есть одна. Используйте те же кнопки, изменив имена кнопок панели инструментов.

меры, которые необходимо соблюдать.

  1. добавить Delegate в текстовое поле. (Таким образом, вы можете использовать TextField методы делегата, чтобы изменить название заголовка кнопок, когда текстовое поле начинает редактирование & закончилась.)

2.performing действие на левой & правой кнопкой проверки для условия. т.е.

UIBarButton *the_button = (UIBarButton *)sender; 

if([[the_button.currentTitle] isEqualToString:@"Save"]) 
{ 
//perform some action 
} 

else 
{ 
//perform else condition 
} 
+0

Что делать, если, например, я была кнопка Отмены и Сохранить в навигационной панели и при нажатии на текстовое поле он отображает UIDatePicker на дне, и я хочу, чтобы удалить кнопку Отмены и изменение кнопки Сохранить решенный кнопка ... Сохранить в Done достаточно просто на основе вашего примера, но Cancel нельзя удалить правильно? – camslaz

+0

, тогда вы скрываете кнопку отмены. i.e self.navigationbar.leftBarbutton.hidden = YES; – Anand

+0

hidden - это не свойство, которое вы можете установить на leftBarButtonItem. Включено только (BOOL). – camslaz

Смежные вопросы