Я использую tableview для списка файлов. И он отлично работает. Однако, когда я удаляю влево для удаления, табличное представление переходит в режим редактирования, и моя кнопка редактирования перезаписывается кнопкой отмены. это тоже прекрасно. Но когда я прокручиваю назад без удаления, кнопка должна вернуться к редактированию, чего не происходит. Есть ли какой-либо делегат, который вызывается, когда ячейка таблицы просматривается обратно? это соответствующий кодУстановить действие, когда ячейка таблицы видна обратно в UITableIview
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
if ([[[NSUserDefaults standardUserDefaults]objectForKey:DOCUMENTDELETE]isEqualToString:ENABLED]) {
return YES;
} else {
return NO;
}
}
-(void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath {
[self.tableView setEditing:NO];
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.tableView.editing) {
return UITableViewCellEditingStyleDelete;
}
else {
self.navigationItem.rightBarButtonItem = nil;
self.navigationItem.rightBarButtonItem = self.cancelButton;
return UITableViewCellEditingStyleDelete;
}
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
self.navigationItem.rightBarButtonItem = nil ;
self.navigationItem.rightBarButtonItem = self.editButton;
if (editingStyle == UITableViewCellEditingStyleDelete) {
NSString *cellText;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
cellText = selectedCell.textLabel.text;
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName =[NSString stringWithFormat:@"/Inbox/"];
NSString *allFilesPath = [documentsDirectory stringByAppendingPathComponent:fileName];
NSString *theactualFilePath = [allFilesPath stringByAppendingPathComponent:cellText];
NSError *error;
_success = [[NSFileManager defaultManager] removeItemAtPath:theactualFilePath error:&error];
[self.tableView setEditing:NO];
if ([_filePathsArray count] == 0) {
[[NSUserDefaults standardUserDefaults] setObject:DISABLED forKey:NOMATCHFOUND];
[[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:ALLFILESDELETED];
[[NSUserDefaults standardUserDefaults]synchronize];
}
if (_success) {
}
else
{
NSLog(@"Could not delete file -:%@ ",[error localizedDescription]);
}
}
[self.tableView reloadData];
}
это код в ViewDidLoad:
if ([[[NSUserDefaults standardUserDefaults] objectForKey:DOCUMENTDELETE] isEqualToString:ENABLED]) {
if (self.tableView.editing){
self.navigationItem.rightBarButtonItem = nil;
self.navigationItem.rightBarButtonItem = self.cancelButton;
}else {
self.navigationItem.rightBarButtonItem = nil;
[self.navigationItem setRightBarButtonItem:self.editButton];
}} else {
self.navigationItem.rightBarButtonItem = nil;
}
Заранее спасибо
Будет лучше, если вы разместите код. –
отредактировал @ ArpitDongre –
@ManeeshSharma: Нам нужен код, который связан с UITableView. – Poles