UITableViewController NavigationItem проблемы с кнопками
У меня проблемы с настройкой кнопок навигации на моем UITableViewController! этот контроллер находится внутри UINavigationController.
У меня следующий вид контроллера:
@interface SettingsViewController : UITableViewController<UITextFieldDelegate, UINavigationControllerDelegate> {
}
...........
@end
и в файле реализации:
- (void)viewDidLoad
{
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
Я добавляю элементы навигационной кнопки программно.
редактировать:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
//[self.navigationItem setHidesBackButton:editing animated:YES];
if (!editing)
{
self.navigationItem.leftBarButtonItem = nil;
[self save];
}
else
{
UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(Cancel:)];
self.navigationItem.leftBarButtonItem = cancelButtonItem;
cancelButtonItem = nil;
}
}
- выше функция редактирования, кажется, работает нормально с точки зрения настройки кнопок навигации
отменить:
- (IBAction)Cancel:(id)sender {
//cancel
self.navigationItem.rightBarButtonItem = self.editButtonItem; --> this is not setting edit button.
self.navigationItem.leftBarButtonItem = nil;
}
- но нажатие на кнопку отмены не заменяет правую кнопку навигации элемента "Готово" на "Редактировать", хотя я делаю это в методе отмены, как показано выше.
что не так с этим кодом?
когда я отлаживаю, я не вижу следующее в области отладки:
po self.navigationItem
есть идеи почему?
Заранее спасибо,
Рама
1 ответ
Решение
Простой, набор editing
в NO
:
- (IBAction)Cancel:(id)sender {
//cancel
self.editing = NO; //--> This is the trick!!!!!!
self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.navigationItem.leftBarButtonItem = nil;
}