Несколько представлений и список источников в приложении Core Data - PullRequest
1 голос
/ 01 августа 2009

Я работаю над своим первым крупным приложением Cocoa для исследовательского проекта для студентов.

Приложение основано на документе и использует базовые данные. Одна из сущностей является абстрактной сущностью, Page. Page является родительской для нескольких типов страниц: то есть PageWithHeaderAndFooter, PageWithTwoColumns, BasicPage и т. Д. Page имеет атрибуты, такие как заголовок и автор, которые имеют все общие страницы. Каждый конкретный тип страницы имеет определенное количество блоков макета (PageWithHeaderAndFooter имеет три: заголовок, нижний колонтитул, тело. BasicPage имеет один: тело. И т. Д.) Кроме того, все подклассы Page определяют специфичные для макета реализации определенных методы.

Другая соответствующая сущность - Style, которая определяет визуальный вид Page. (Думайте о Page s как о HTML и Style как о CSS.)

Мне бы хотелось, чтобы у моего приложения был список источников в виде iTunes / Mail-подобия с разделами. (Один раздел будет «Страницы», другой - «Стили».) У меня есть довольно хорошая идея, как составить секционированный список источников (, это было очень полезно ).

Однако, после нескольких часов тряски головой и бесплодного поиска в Google, вот что я не могу понять:

Страницы и стили перечислены в списке источников, и когда вы выбираете одно из них, все соответствующие поля для этого объекта появляются справа (в основном NSTextViews, всплывающие меню и т. Д.).

Я изложил это и сделал все привязки в Интерфейсном Разработчике.

Проблема в том, что если мой список источников содержит разные типы страниц, как мне получить другое представление для отображения справа в зависимости от типа выбранной страницы? Например, если выбран BasicPage, я хочу только то, что вы видите выше: общий материал страницы и один NSTextView, который соответствует одному полю body из BasicPage. Но если я выберу PageWithHeaderAndFooter, я хочу отобразить общий материал страницы плюс три NSTextViews (один для верхнего, основного и нижнего колонтитула). Если у меня выбран Style, я хочу отобразить различные всплывающие меню, цвета колодцы и др.

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

Как бы вы это сделали?

Спасибо за вашу помощь!

1 Ответ

1 голос
/ 08 апреля 2010

У меня есть список предметов одного из 3 типов, но все они очень похожи.

Я устанавливаю Entity в контроллере вида перед тем, как нажать его, затем в viewDidLoad пуше я проверяю, какой тип entity у меня есть, и размещаю информацию по-разному, определяя различные кончики для загрузки. *

if([[entity entityType] isEqualToString:@"TypeA"]) {
    [[NSBundle mainBundle] loadNibNamed:@"TypeAView" owner:self options:nil];
} else if(...) { .....

Это прекрасно работает для меня.

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