Как вернуть информацию от ребенка к родителю в NavigationController - PullRequest
1 голос
/ 29 января 2009

Интересно, как правильно вернуть какое-то сообщение из дочернего представления.

У меня есть объект, который редактируется в дочернем представлении. Я хочу видеть в TableView их модификации.

Однако я не знаю чистого способа сделать это (мне здесь не нравится синглтон).

Можно ли получить уведомление, когда представление Child исчезнет, ​​и получить некоторую информацию об этом?

Ответы [ 3 ]

2 голосов
/ 29 января 2009

Вы можете использовать UIViewController уведомления viewWillDisappear: и viewDidDisappear:, чтобы получать уведомления непосредственно перед тем, как определенный UIView собирается исчезнуть и сразу после его исчезновения соответственно , Обратите внимание, что большинство различных объектов UIKit (включая UITableView) являются подклассами UIView.

1 голос
/ 29 января 2009

ИМХО, "правильный" способ состоял бы в том, чтобы реализовать собственный протокол в контроллере представления (возможно, в вашем случае - в контроллере навигации) или в делегате приложения, и чтобы дочерний вид связывался, используя его, когда он получает viewWillDisappear и / или viewWillDisappear уведомления (как указано в ответе Адама). Аналогично, в родительском представлении вы можете обновить необходимую информацию в обработчике viewWillAppear.

Таким образом, родительское представление получает свои данные от делегата, а не напрямую от конкретного дочернего представления, которое поддерживает MVC в вашем проекте.

0 голосов
/ 30 января 2009

Вы также можете отправить уведомление (используя NSNotificationCenter) о том, что родитель будет подписан на прослушивание - что имеет дополнительное преимущество, что другие классы могут быть также уведомлены.

Но если это довольно строгие отношения, в которых будут заботиться только подпредставление и основная таблица, вам, вероятно, следует установить контроллер представления таблицы в качестве делегата подпредставления и сделать так, чтобы подпредставление вызывало делегата напрямую (протокол, который упоминается хорошая идея для чего-то вроде этого).

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