Базовые данные на основе нескольких перьев на основе выбора - PullRequest
0 голосов
/ 07 февраля 2012

Я создаю приложение на основе базовых данных.В приложении есть основной вид (NSTableView) и вид инспектора.Оба представления являются отдельными файлами пера.Содержимое представления инспектора должно зависеть от выбранной строки в главном представлении.У меня есть три файла контроллера:

  • DocumentWindowController (главный контроллер)
  • ItemsViewController (основной вид)
  • SchedulesViewController (часть инспектора)

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

Я попытался заставить его работать следующим образом:

  • Каждый контроллер имеетэто собственный NSArrayController, который устанавливается в DocumentWindowController.DocumentWindowController получает свой managedObjectContext из [[self document] managedObjectContext]
  • Когда пользователь щелкает строку в tableView ItemsViewController, публикуется NSNotification с [NSTableView selectedRow] в качестве параметра.Затем делается запрос на выборку.

Моя интуиция говорит, что я должен сделать это с привязками Какао.Я искал на Stackoverflow и Google, но я просто не могу заставить его работать.Если все находится в одном файле, это очень легко сделать.Каков наилучший / наиболее используемый способ достижения этого?

Заранее спасибо!

1 Ответ

1 голос
/ 07 февраля 2012

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

@protocol InspectorDataSource <NSObject>
- (void) inspectorView:(InspectorView*)inspectorView managedObjectSelected:(NSManagedObject*)managedObject;
@end

Ваш контроллер представления инспектора будет иметь источник данных в качестве свойства.

@interface InspectorViewController : UIViewController{
    @public
    id<InspectorDataSource> dataSource;
}
@property (nonatomic, assign) id<InspectorDataSource> dataSource;
...