2015-02-10 2 views

ответ

2

Вы должны передать indexPath в качестве отправителя в performSegue. Имеет ваш код:

- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    UITableViewRowAction *edit = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"edit" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){ 
     [self performSegueWithIdentifier:@"editLesson" sender:indexPath]; 
    }]; 



- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([[segue identifier] isEqualToString:@"editLesson"]) { 
     NSIndexPath* indexPath = (NSIndexPath*)sender; 
     NSManagedObject *selectedLesson = [self.lessons objectAtIndex:indexPath.row]; 
     EditLessonViewController *destViewController = segue.destinationViewController; 
     destViewController.lesson = selectedLesson; 
    } 
} 
+0

Я как раз собирался использовать iVars, но это опрятно. Вы не можете полагаться на table.indexPathForSelectedRow, чтобы получать строки, которые редактируются. –

+0

Это помогло, спасибо большое! – ermolushka

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