我真的需要一些帮助。自从我开始使用Cocoa进行编程以来,我遇到了多个视图控制器和阵列控制器问题。我总是遇到一些糟糕的粘合代码和糟糕的代码结构。
我正在开始一个新项目,并希望这次能够做到正确。
主要问题是:
假设我有一个基于文档的应用程序(!),它有点像一个主要细节的东西。它与10.10的故事板
一个带有表的视图,另一个带有条目的信息。
我需要一些基本的结构帮助。信息存储在一个数组中,这意味着我需要一个NSArrayController。如果我将一个Object放入存储mutablearray的IB中,我需要将它和arraycontroller放入故事板的同一场景中。我现在如何从另一个viewcontroller中访问任何内容?
这通常是怎么做的?如果我在FirstViewController中引用NSArrayController我有它,但我需要在SecondViewController中对数据进行一些工作,而不仅仅是显示它,我需要用数据计算东西。我不能在SecondViewController中放置另一个NSArrayController,因为那时我需要将另一个Object放入场景中,它将是一个新的,而不是带有数据的旧的。
我不知道我是否遗漏了一些明显的东西,但我无法理解这一点。我需要在多个ViewControllers中访问多个地方的数据数组,而不仅仅是在IB中,我还需要在代码中使用数据。
这个问题演变成一个更大的问题,但如果我能从这个想法得到一些帮助,我可以自己解决它。
在此先感谢您提供一些基本指导。
修改 谷歌几乎整整一天之后我都认为没有人知道这一点,因为在这里所有与我相似的其他问题都没有得到回答,或者如果没有做更多的工作,这是不可能的?我能想到的只是在windowcontroller中引用ArrayController并以某种方式告诉viewControllers使用该数据但是首先在osx上使用故事板是什么意思?
如果Apple真的发布了Sketch的故事板版本(草图"下一代"),我想我会更好地了解如何做到这一点,就像他们在wwdc视频中谈到的那样在那里做一些想法,但是。今天我不认为这可能与故事板。我将继续以我的方式继续这样做。
-Benjamin
答案 0 :(得分:2)
这可以做到!诀窍是使用多个NSArrayController
,其selectionIndexes
通过中央数据源绑定在一起。
我在这里用一个示例项目演示了这个: https://github.com/acwright/StoryboardBindingsExample
另请参阅我在此提供的答案:https://stackoverflow.com/a/29904620/296708