2013-09-10 2 views
1

Я работаю над приложением «Мастер-Деталь» (как для iPhone, так и для iPad), и я не могу воспроизвести такое же поведение родного приложения Notes при вставке нового элемента. Кроме того, я не нашел никакой интересной помощи в Google. При вставке я хочу перенаправить пользователя в подробный вид вновь вставленного элемента. Я пытался позвонить selectRowAtIndexPath: в didChangeObject: метод контроллера, как это:iOS UITableView и Master-Detail вид

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject 
    atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type 
    newIndexPath:(NSIndexPath *)newIndexPath 
{ 
    UITableView *tableView = self.tableView; 

    switch(type) { 
     case NSFetchedResultsChangeInsert: 
      [tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; 
      [tableView selectRowAtIndexPath:newIndexPath animated:YES scrollPosition:UITableViewScrollPositionNone]; 
      break; 

Но ничего не происходит ... может быть потому, что вновь вставленный элемент не было времени, чтобы появиться в виде таблицы ?

Заранее спасибо за любую помощь

ответ

0

Try добавить [Tableview reloadData]:

[tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; 
[tableView reloadData]; 
[tableView selectRowAtIndexPath:newIndexPath animated:YES scrollPosition:UITableViewScrollPositionNone]; 

Edit:

scrollToRowAtIndexPath только подчеркивает клетку, и не будет стрелять didSelectRowAtIndexPath, попробуйте вручную называть это:

[tableView.delegate tableView didSelectRowAtIndexPath:indexPath]; 
+0

Я получаю тот же результат, спасибо вам все равно – benjamin

+0

Да строка успешно вставлена, но подробный вид не приходит – benjamin

+0

А вам нужно запустить tableView: делегат didSelectRowAtIndexPath: попробуйте это после selectRowAtIndexPath [self tableView: self.tableView didSelectRowAtIndexPath: indexPath]; – null

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