2013-05-24 1 views
1

У меня есть панель навигации, на которой я установил кнопку редактирования по умолчанию, которая позволяет мне удалять элементы таблицы. Однако, когда мой стол пустой, он по-прежнему сохраняет состояние кнопки, как «сделано» и не получает обратно «редактировать» мой код идет здесь, В viewDidLoadНастройка по умолчанию Кнопка навигации по редактированию (как я могу поддерживать ее состояние?)

self.navigationItem.leftBarButtonItem = self.editButtonItem; 
//My Editing method 
-(void)setEditing:(BOOL)editing animated:(BOOL)animated 
{ 
    if([userInfoArr count]!=0) 
    { 
     [super setEditing:editing animated:animated]; 
     [self.tableView setEditing:editing animated:YES]; 
    } 
} 
+0

мой код здесь идет, В viewDidLoad 'self.navigationItem.leftBarButtonItem = self.editButtonItem;' Мой метод редактирования '- (Недействительными) setEditing :(BOOL) редактирование анимированный: (BOOL) анимированный { if ([userInfoArr count]! = 0) { [super setEditing: редактирование анимированные: анимированные]; [self.tableView setEditing: редактирование анимированных: ДА]; } } ' – JgdGuy

+3

@ jgdGuy..Используйте параметр редактирования и добавьте код к вопросу –

+0

. Итак, вы хотите автоматически отменить режим редактирования, когда все элементы были удалены? – Wain

ответ

0

Я побежал в эту проблему. Я решил, что это мой маленький взлом в

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 

Проверьте, нет ли источника данных. Установите редактирование на NO

[self.tableView setEditing:NO animated:YES]; 
[self setEditing:NO]; 
1

Затем удалить последний элемент таблицы просто позвонить

[self.tableView setEditing:NO animated:YES]; 

для установки вида таблицы в режиме без редактирования.

может быть, вам нужно вызвать [super setEditing:NO animated:YES]; кнопку, чтобы установить в «изменить» состояние

+0

Удивительно это работает ..! Я должен был сделать это в моем numberOfRowsInSection, '- (NSInteger) Tableview: (UITableView *) Tableview numberOfRowsInSection: (NSInteger) раздел { если (userInfoArr.count == 0) { [self.tableView setEditing: NO animated: YES]; [super setEditing: NO animated: YES]; } return userInfoArr.count; } ' – JgdGuy

2

Вы можете сделать это в методе tableView:commitEditingStyle:forRowAtIndexPath:, например, так:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     // Do the deletion... 
    } 

    // If the array is empty, turn off edit mode 
    if ([userInfoArr count] < 1) { 
     [super setEditing:NO animated:NO]; 
     [tableView setEditing:NO animated:NO]; 
    } 
} 
+0

Я сделал то же самое ... n работает ... спасибо за ответ ..! – JgdGuy

1

Удивительно, это работает ..! Я должен был сделать это в моем numberOfRowsInSection, - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if(userInfoArr.count==0) { [self.tableView setEditing:NO animated:YES]; [super setEditing:NO animated:YES]; } return userInfoArr.count; }

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

  • Нет связанных вопросов^_^