Как вы передаете объект между ViewControllers на iOS? - PullRequest
1 голос
/ 03 июня 2011

Используя шаблон «Панель вкладок» в Xcode 4, каждый ViewController создается автоматически, поэтому у меня нет возможности установить какие-либо свойства ViewController при его создании.Я хочу, чтобы каждый ViewController имел доступ к объекту (экземпляр базы данных FMDB).

В StackOverflow уже есть ряд вопросов, связанных с этим, но некоторые предполагают, что вы создаете VC вручную, а другие рекомендуют использовать AppDelegate в качестве посредника:

MyAppDelegateClass *appDelegate = [[UIApplication sharedApplicaton] delegate];
myLocalProperty = appDelegate.someDataModelProperty;

Вышесказанное кажется мне довольно «хакерским».Есть ли лучший способ получить доступ к одному объекту из нескольких ViewControllers?

Ответы [ 3 ]

3 голосов
/ 03 июня 2011

Наиболее вероятная реализация базы данных FMDB будет заключаться в том, чтобы реализовать ее в виде синглтона и получать к ней доступ через приложение.Есть ли причина для этого?

Эта ссылка должна помочь вам в этом: Как сделать базу данных FMDB синглтоном

0 голосов
/ 22 июня 2011

MyAppDelegateClass * appDelegate = [[UIApplication sharedApplicaton] делегат]; myLocalProperty = appDelegate.someDataModelProperty;

Существует ошибка правописания в этом коде: 'sharedApplicaton' написано неправильно, это должно быть 'sharedApplication'.

Позор мне за копирование и вставку! В любом случае это будет работать для быстрого и грязного способа передачи данных между ViewControllers и т. Д.

0 голосов
/ 04 июня 2011

Чтобы расширить ответ KKK4SO, вы можете реализовать базу данных как единое целое. Затем, пусть все ваши UIViewController будут подклассами UIViewController, который содержит методы для доступа и изменения одноэлементной базы данных.

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