2013-12-09 4 views
1

У меня есть приложение, которое занимает 3 раздела пользовательских данных: сведения о событии, местоположении события и дате/времени для события. Затем каждый из них сохраняется в ячейке в контроллере главного представления. Я хочу, чтобы иметь возможность удалять (используя кнопку редактирования) каждую из этих ячеек, когда это необходимо.Реализация кнопки редактирования iOS

Например, если одно из событий становится неактуальным, я хочу, чтобы пользователь мог использовать кнопку редактирования для удаления ячеек. Я уже включил кнопку редактирования в моей раскадровке, как показано ниже:

enter image description here

Я никогда не узнал, как по-настоящему реализовать кнопку редактирования, и не может найти какую-либо документацию Apple, о том, как на самом деле использовать кнопку редактирования. Есть ли код для реализации в моем контроллере просмотра, который это выполнит? Или есть способ добиться удаления ячейки в раскадровке?

EDIT: Вот мой файл проекта для справки - ссылка Файл удален

ответ

2

Приложение в настоящее время удаляет строки в порядке и работает, пока приложение не загрузится в следующий раз. Ваша ошибка в FinalMasterViewController.m, метод tableView: commitEditingStyle: forRowAtIndexPath имеет следующий код:

if (editingStyle == UITableViewCellEditingStyleDelete) { 
[self.managedObjectContext deleteObject:[_fetchedResultsController objectAtIndexPath:indexPath]]; 
} 

Вы забываете СОХРАНИТЬ

if (editingStyle == UITableViewCellEditingStyleDelete) { 
[self.managedObjectContext deleteObject:[_fetchedResultsController objectAtIndexPath:indexPath]]; 
//THIS IS THE LINE 
[self.managedObjectContext save:nil]; 
//Without it, the context will not save. 
} 
+0

Блестящий! Спасибо! – Willy2414

1

В вашем методе viewWillAppear: установите

[tableview setEditing: NO animated: YES]; 

Тогда в методе, вызываемом кнопкой, переключение

-(void) editClicked{ 
    if(tableview.editing){ 
     [tableview setEditing: NO animated: YES]; 
    else{ 
     [tableview setEditing: YES animated: YES]; 
    } 
} 
+0

Пытался реализовать этот код: получил ошибку не говоря «Нет известный метод класса для выбора» setEditing : animated ". Я включил свой файл проекта выше для справки – Willy2414

+0

Я не уверен, почему, поскольку UITableView явно имеет для него метод: https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UITableView_Class/ Ссылка/Reference.html # // apple_ref/occ/instm/UITableView/setEditing: анимированный: – erdekhayser

+1

Метод класса ожидания? ould должен получить доступ к объекту tableview not class. Может быть [self.tableView setEditing ... Будет работать? – erdekhayser

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