2015-03-11 3 views
-1

Я недавно начал разработку ios и здесь застрял. Я создал приложение с вкладками. Внутри FirstViewController я держу список объектов, содержащих координаты. На второй вкладке у меня есть MapView.IOS: передать массив другому Вид

Я хочу показать булавку на карте для каждой координаты в списке в ViewController 1, но я не знаю, как

  1. я могу получить доступ к массиву в другом ViewController
  2. я могу получить сообщается, когда этот список растет, поэтому могут быть созданы дополнительные контакты
+0

Вы должны думать о «моделировании» ваших точечных данных в какую-то структуру, доступную для обоих контроллеров, которые должны знать об этом. Это очень распространенный вопрос. – Aaron

ответ

0

Вы должны прочитать о MVC или MVVM. В этих шаблонах проектирования вы должны использовать модель, в которой хранятся координаты. Контроллер или ViewModel должны иметь ссылку на эту модель.

ViewControllerA -> владеет CoordinateModel ViewControllerB -> владеет тот же CoordinateModel

Кроме того, Координатная модель должна информировать оба контроллера об изменениях.

0

Если диспетчер просмотра карты должен знать, что происходит в первом контроллере, но не наоборот, я бы предложил использовать делегирование. Сделайте контроллер отображения карты делегатом первого контроллера и попросите первого контроллера отправить сообщение его делегату в любое время, когда изменится его массив объектов.

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