Как я могу поделиться моделью между несколькими видами раскадровки? - PullRequest
0 голосов
/ 12 ноября 2011

Ситуация:

Я пишу свое первое приложение для iPhone; это игра opengl, и я хочу использовать отдельные виды ... Первый вид - это экран меню, обычный UIView / UIViewController со списком рекордов и несколькими кнопками для настройки и запуска новой игры. Второе представление - это комбо GLKView / GLKViewController, которое будет отображать игру.

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

Мои вопросы:

Так я должен поступать? Повторюсь, я хочу, чтобы моя модель принадлежала AppDelegate, и я передам ссылки на контроллеры представления из приложения: didFinishLaunchingWithOptions: method. Если есть лучший способ решить эту проблему, пожалуйста, дайте мне знать.

Предполагая, что вышеизложенное является правильным способом, как бы я поступил? Я не уверен, как получить доступ к элементам в раскадровке.

1 Ответ

0 голосов
/ 17 ноября 2011

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

В идеале модель не должна напрямую взаимодействовать с представлениями: она должна сообщить делегату приложения, что она изменилась, и тогда делегат приложения сообщит соответствующий вид для обновления.

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

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