У меня есть кнопка (UINavigationBarItem), используемая для редактирования моего UITableView, которая позволяет только удалять. Поэтому, когда я нажимаю «Удалить», рядом с каждой ячейкой появляется маленькая красная линия, и я могу удалить каждую строку.
При нажатии кнопки вызывается следующая функция:
-(void)editButtonSelected:(id)sender {
if(self.editing)
NSLog(@"self.editing = true");
else
NSLog(@"self.editing = false");
if(self.editing) {
[super setEditing:NO animated:NO];
[tableView setEditing:NO animated:NO];
[tableView reloadData];
[leftButton setTitle:@"Delete"];
[leftButton setStyle:UIBarButtonItemStylePlain];
self.editing = false;
}
else {
[super setEditing:YES animated:YES];
[tableView setEditing:YES animated:YES];
[tableView reloadData];
[leftButton setTitle:@"Done"];
[leftButton setStyle:UIBarButtonItemStyleDone];
self.editing = true;
}
}
И все работает отлично. Но только на время. Как только я представляю новый UIViewController, а затем отклоняю этот контроллер, эта функция удаления не работает на этом главном экране, который у меня есть. Он работает нормально, пока новый UIViewController не будет помещен сверху. Сама кнопка работает нормально, и значение self.editing действительно переключается между истиной и ложью, но маленькие красные линии не отображаются. Почему это могло произойти?