Как обновить объект из предыдущего ViewController? - PullRequest
1 голос
/ 08 февраля 2012

У меня есть контроллер вида с именем searchUpdateController, у него есть кнопка, чтобы нажать новый контроллер вида с именем editController.В editController есть кнопка «Сохранить», и она содержит следующий код:



searchUpdateController = [[SearchUpdate alloc] init];
    [self.navigationController popViewControllerAnimated:YES];
    [searchUpdateController.fieldsValArray replaceObjectAtIndex:3 withObject:joinedString];
    [searchUpdateController.mainTable reloadData];
    [searchUpdateController release];

fieldsValArray - это свойство NSMutableArray в searchUpdateController, а mainTable - это tableView в searchUpdateController.Я хотел обновить содержимое fieldsValArray и перезагрузить данные tableView.Ничего не происходит, когда я нажимаю кнопку Сохранить.Есть идеи, что мне здесь не хватает?

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Не делайте этого -> searchUpdateController = [[SearchUpdate alloc] init];Здесь вы создаете новый объект, который не ссылается на ваш старый объект

Прежде чем вернуться к searchUpdateController , сделайте следующее:

  • Получите второй последний объект от себя.navigationController.viewControllers, который является ничем иным, как searchUpdateController
  • Теперь у вас есть один и тот же объект, поэтому обновляйте данные массива в зависимости от того, что вам нужно
  • Теперь есть две возможностиперезагрузите данные:

    1. Используйте NSNotification и отправьте уведомление родительскому контроллеру представления, где необходимо перезагрузить таблицу
    2. Вызовите метод родительского класса, который перезагрузит таблицу

Надеюсь, это то, что вы хотите.

1 голос
/ 08 февраля 2012

Здесь вы создаете новый объект, не используя старый в коде searchUpdateController = [[SearchUpdate alloc] init]; устанавливая их searchUpdateController из SearchUpdateController класса.так что он указывает на тот объект, который толкает editController

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...