将文档数据传递给 yosemite 中的视图控制器(故事板)

passing document data to the view controllers in yosemite (storyboards)

您应该什么时候将文档或文档数据传递给视图控制器?它不能在 prepareForSegue 中完成,因为不为属于 containment/relationship 序列的视图控制器调用此函数。

也不在 windowControllerDidLoadNib 中,因为它也不总是被调用。

我目前的做法是这样的:

  1. 子类 NSDocument 并覆盖 makeWindowControllers 以将文档实例传递给 window 控制器。
  2. 子类 NSWindowController 并覆盖 windowDidLoad 以将文档(或任何其他类型的数据)传递给 contentViewController。
  3. 子类化 NSViewController 以处理数据 and/or 将其传递给 childViewControllers。

  4. 如果另一个 NSViewController 中的某些内容(例如选择)已更改,则使用通知通知 NSViewController。