Как передавать данные между viewcontrollers - PullRequest
0 голосов
/ 12 марта 2012

На данный момент у меня довольно сложное приложение, и я чувствую, что способ обработки данных не совсем чистый.

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

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

Как мне вернуть эти данные в ViewController, который их вызвал?Я немного поработал с протоколами и делегатами ... но я не знаю, как это вписалось бы в это.

Вот графический пример того, чего я пытаюсь достичь.

Passing data between views

Так же, как и выше, контроллер View вызывает метод инициализации класса объекта, который подключается к БД, загружает данные, а затем анализирует эти данные.У меня возникла проблема, как мне затем передать эти данные ViewController2 ..

Каков наиболее подходящий и надежный способ сделать это?

Ответы [ 3 ]

3 голосов
/ 12 марта 2012

Пользовательский метод - init творит чудеса. Например, мне нужно было создать экземпляр и нажать на сборщик, предварительно загруженный массивом из предыдущего экрана, поэтому я определил -(id)initWithArray:(NSArray*)array во втором представлении, затем просто вызвал secondView = [[SecondView alloc]initWithArray:_population]; и затем выдвинул его. Не забудьте получить право собственности на любой объект, который вы передаете, прежде чем он будет освобожден и уничтожен!

0 голосов
/ 12 марта 2012

Попробуйте отправить локальное уведомление с помощью NSNotificationCenter. Зарегистрируйте ваш ViewController2 в качестве прослушивателя, а затем, после получения уведомления, вызовите модель данных (singleton !?) для получения данных.

0 голосов
/ 12 марта 2012

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

...