2013-12-26 5 views
0

Итак, у меня есть два контроллера вида. У одного есть автозаполнение для поиска местоположения, и все, что он делает, это позволить пользователю использовать google-места api для получения адреса. Другая позволяет пользователю выполнять поиск по ключевым словам и фактически отображает результаты в виде таблицы (с пользовательской uitablecell).Создание одного контроллера вида прослушивание другого

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

Другими словами, я ищу способ, которым один контроллер просмотра может запускать сообщение, а другой контроллер просмотра - слушать.

Есть ли способ сделать это?

+0

Почему вы должны пойти с делегатом? – jailani

+0

извините, что вы спрашиваете? – praks5432

+0

или использовать Уведомление. сделайте SecondVC, чтобы прослушать уведомление, когда firstVC запускает его. – Dilip

ответ

1

Если есть несколько приемников, используйте Уведомления. Мы можем установить только один делегат.

Когда использовать NSNotificationCenter Контрольный список:

Вам нужен один-ко-многим. Вам нужно немного наблюдателей, чтобы реагировать на конкретное уведомление. Пример: уведомления о доступности. Когда изменяется доступность сети, например. wi-fi становится недоступным, все объекты, подписанные на этот тип уведомлений, получат их и могут обрабатывать соответственно. По дизайну вы поощряете ослабление сцепления. В приведенном выше примере производитель, который отправляет уведомление об изменении доступности, ничего не знает о возможных наблюдателях этих уведомлений. Их может быть мало или нет. То же самое справедливо для наблюдателей, им не нужно ничего знать о производителях этого уведомления.

Когда использовать Делегаты Контрольный список:

Делегаты должны всегда использоваться только для один-к-одному отношения. Используйте делегатов, если вы поощряете плотное соединение. Имейте в виду, что с помощью делегатов вы создаете большую взаимозависимость между объектами и поддерживаете большую координацию с потоком информации. Очень хорошим примером делегатов будет UITableView. UITable ViewDelegate поощряет больший поток информации и создает большую взаимозависимость между контроллером представления и табличным представлением.

Вот что вам нужно
Notification or Delegate
link 2

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