セルの並べ替え時に iOS UITableView が編集モードで動かなくなる
[編集] をクリックすると編集モードが正しく開始され、[完了] をクリックすると編集モードが正しく終了します。
しかし、セルをドラッグして並べ替えると、テーブルが編集モードで動かなくなります。添付を参照してください。それを回避する唯一の方法は、アプリを強制終了することです。
これは iOS 6 および 7 で発生しています。
任意の提案をいただければ幸いです。
- (IBAction)editAction:(id)sender
{
[self.tableView setEditing:YES animated:YES];
}
- (IBAction)doneAction:(id)sender
{
[self.tableView setEditing:NO animated:YES];
}
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
self.fetchedResultsController.delegate = nil;
NSMutableArray *objects = [[self.fetchedResultsController fetchedObjects] mutableCopy];
id object = [self.fetchedResultsController objectAtIndexPath:fromIndexPath];
[objects removeObject:object];
[objects insertObject:object atIndex:[toIndexPath row]];
int i = 0;
for (NSManagedObject *mo in objects) [mo setValue:[NSNumber numberWithInt:i++] forKey:@"displayOrder"];
objects = nil;
[[self currentManagedObjectContext] MR_saveToPersistentStoreAndWait];
self.fetchedResultsController.delegate = self;
[[self fetchedResultsController] performFetch:nil];
}