Подтвердить что ты не робот

Как отключить режим редактирования в UITableView, когда больше нет ячеек для удаления?

Я попытался поместить это в различные части моего кода, например, в конце метода commitEditingStyle, но я не могу заставить его прекратить режим редактирования. В принципе, я хочу автоматически выйти из режима редактирования, когда больше нет ячеек...

if ([self.tableView numberOfRowsInSection:0] ==0)
    {
        NSLog(@"this triggers, but doesn't stop editing..");
        self.tableView.editing = NO;
        [self.tableView endEditing:YES];
    }
4b9b3361

Ответ 1

Как насчет [self setEditing:NO animated:YES]? Я полагаю, что я - экземпляр UITableViewController.

Ответ 2

Из документов apple:

Note: The data source should not call setEditing:animated: from within its implementation of tableView:commitEditingStyle:forRowAtIndexPath:. If for some reason it must, it should invoke it after a delay by using the performSelector:withObject:afterDelay: method.

Итак, вызов этого в commitEditingStyle не является большой практикой.

Ответ 3

Если это не просто [self setEditing:NO animated:YES]?

Ответ 4

Swift 5 эквивалент:

super.setEditing(false, animated: true)