TableView не перезагружается.Использование основных данных - PullRequest
0 голосов
/ 14 июля 2010

Мой первый вид - это tableView (RootViewController). Мое второе представление - это tableView, данные которого зависят от объекта, который передается из RootViewController. Мое третье представление - это представление с textField. Он также берет тот же объект, что и второй вид. Этот textField содержит имя переданного объекта. Когда я изменяю его, сохраняю и возвращаюсь ко 2-му виду, он не показывает обновленную информацию. Но когда я перехожу к первому виду, он показывает, что он обновлен, а затем ко второму размеру.

Я использовал [self.tableView reloadData]; в методе viewWillAppear 2-го представления, но это не работает.

Когда я говорю, что спасаю, я делаю:

if (![context save:&error])
// error stuff

(Контекст также передается через представления через didSelectRowAtIndexPath)

Это должно быть досадно просто. По крайней мере, я на это надеюсь. Спасибо.

Ответы [ 2 ]

1 голос
/ 14 июля 2010

Во втором представлении внедрите следующее уведомление:

- (void)contextDidSave:(NSNotification *)notification
{

  [managedObjectContext mergeChangesFromContextDidSaveNotification:notification];
  [self.tableView reloadData];

}

вставьте следующее в метод viewDidLoad:

[[NSNotificationCenter defaultCenter] addObserver:self
                                selector:@selector(contextDidSave:)
                                                 name:@"ContextDidSave" object:nil];

вставьте следующее в dealloc:

[[NSNotificationCenter defaultCenter] removeObserver:self];

Теперь, когда вы сохраняете данные в текстовом поле, сразу после сохранения контекста выполните следующее:

[[NSNotificationCenter defaultCenter] postNotificationName:@"ContextDidSave" object:managedObjectContext];

Это должно работать.

0 голосов
/ 14 июля 2010

Во втором представлении поместите код, который загружает данные, в метод viewWillAppear, а не в метод viewDidLoad.

...