У меня есть UITableView, в котором у меня загружены файлы из UIWebView. До моих изменений у меня не было проблем с удалением строки и из локальной папки, в которую она была загружена.Лист действия UIButton для обработки delete
С тех пор я реализовал функцию множественного выбора. Нажатие на редактирование, выбор w/e-файлов, нажатие кнопки «Удалить» для отображения листа действий отлично работает. Но для жизни я не могу понять, как сделать процесс действия процессом удаления.
Ниже я отправлю код, с которым я работаю.
//viewDidLoad:
self.deleteButton = [[UIBarButtonItem alloc] initWithTitle:@"Delete" style:UIBarButtonItemStyleBordered target:self action:@selector(deleteButton:)];
- (void)deleteButton:(id)sender
{
NSString *actionTitle = ([[self.tableView indexPathsForSelectedRows] count] == 1) ?
@"Are you sure you want to remove this item?" : @"Are you sure you want to remove these items?";
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:actionTitle delegate:self cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"OK" otherButtonTitles:nil];
actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[actionSheet showInView:self.view];
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete){
NSString *fileName = [directoryContents objectAtIndex:indexPath.row];
NSString *path;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"downloads"];
path = [path stringByAppendingPathComponent:fileName];
NSError *error;
//Remove cell
[directoryContents removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
//[tableView reloadData];
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) //Does file exist?
{
if (![[NSFileManager defaultManager] removeItemAtPath:path error:&error]) //Delete it
{
NSLog(@"Delete file error: %@", error);
}
}
}
}
Любая информация о том, как связать эту кнопку «ОК», чтобы закончить удаление, была бы весьма признательна.
У меня нет проблем со списком действий, как указано, что часть работает нормально. Он связывает кнопку листа действия с commitEditingStyle, чтобы завершить процесс удаления. – ChrisOSX
Я бы выполнил ваше удаление внутри метода делегата actionSheet, а затем перезагрузил tableView. –
Я считаю, что мне просто нужен способ вызвать идентификатор deleteButton внутри commitEditingStyle, как ответ выше вашего. – ChrisOSX