2010-07-24 2 views
0

Я пытаюсь создать свое первое приложение для iphone. Сначала я заканчиваю свой логический логик приложения, содержащий класс DataLogic, который имеет все мои массивы. и еще 2 классаconnect GUI to LOGiC

затем я создаю свой appGUI, который содержит 2 вида. SearchViewClass и ResultViewClass теперь моя проблема заключается в том, как подключиться к логике к графическому интерфейсу. экземпляр DataLogic входит в мой класс AppDelegate, и мне нужно, чтобы два класса GUI могли присоединиться к этому экземпляру, но я не знаю, кто должен перейти к экземплярам класса AppDelegate из классов GUI?

Я также не видел, где приложение инициализирует классы GUI? поэтому где экземпляр классов GUI?

ответ

0

Используется шаблон проектирования MVC (Model-View-Controller). Его следует называть шаблоном Model-Controller-View, потому что контроллер посредничает между моделью и представлением.

В вашем случае класс DataLogic является вашей моделью. Представления контролируются парным объектом контроллера представления, который является экземпляром или подклассом UIViewController. В зависимости от приложения существует множество способов связать контроллеры представлений друг с другом, их представлениями и моделью.

Проще всего понять, будет ли приложение навигация в проектах Xcode Template. Он не имеет объекта модели данных, но у него есть контроллер навигации, а класс RootViewController - его парное представление, определенное в RootViewController.xib. RootViewController является экземпляром RootViewController подкласса UIViewController (Обычно, RootViewController> UITableViewController> UIViewController.)

В вашем случае, вы бы добавить свойство к RootViewController содержать ссылку на свой класс Datalogic. В методе делегата application:didFinishLaunching: вы должны инициализировать экземпляр DataLogic, а затем установить свойство RootViewController в экземпляр DataLogic.

Теперь экземпляр RootViewController подключается к экземпляру DataLogic. Когда контроллер навигации нажимает экземпляр RootViewController на стек навигации, загружается представление экземпляра RootViewController (назначенное в файле nib). Затем экземпляр RootViewController берет данные из экземпляра DataLogic и заполняет элементы интерфейса в представлении. Когда пользователи вводят данные в пользовательский интерфейс, контроллер берет данные из элементов пользовательского интерфейса и помещает их в экземпляр DataLogic.

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

+0

Возможно, вы можете мне помочь с кодом? Как перейти к контроллеру rootview? У меня нет RootViewController У меня есть FirstViewController. – Amir

+0

У меня есть приложение Tab Bar, и я хочу, чтобы все окна вкладок могли подключаться к DataLogic. Я не нашел, как использовать RootViewController , может быть, вы можете мне помочь с кодом? как перейти к rootviewcontroller? У меня нет RootViewController У меня есть FirstViewController. – Amir

+0

Яблоко может помочь вам с кодом, вот что такое справочная библиотека iOS :) Ссылка на хороший, чтобы начать с: http://developer.apple.com/iphone/library/samplecode/SimpleDrillDown/Introduction/Intro.html – iwasrobbed