我是一名iOS开发人员,试图整合一个小OSX应用程序。
我无法弄清楚的一件事是如何在我的viewControllers中正确地注入依赖项。
这是我的设置:
NSWindowController
|
+- NSSplitViewController
|
+- NSViewController
|
+- NSViewController
现在我想在开始加载他们的tableViews并询问一些数据之前,将我的数据堆栈注入所有viewControllers 。
第一次尝试:
来自iOS我挂钩到[AppDelegat applicationDidFinishLaunching]
来创建我的数据堆栈并在根视图控制器上设置它以传递给它的孩子。
问题:为时已晚 - [NSViewController viewDidLoad]
在此之前被调用(什么?)。在我有机会进行设置之前,我的TableView开始询问数据。
我接下来要做的是做一些日志记录,以了解应用程序设置周期是如何工作的。我发现按顺序调用实时循环方法:
[DKDSplitViewController viewDidLoad]
[DKDTableViewController viewDidLoad]
[DKDWindowController windowDidLoad]
[DKDWindowController awakeFromNib]
[AppDelegate applicationDidFinishLaunching:]
这对我来说似乎很奇怪,孩子们在父母面前被创造出来...... 我做错了什么或者这些是OSX的自然规则吗?
因此看起来,我应该在我的SplitViewController中进行设置。不知怎的,这感觉不对。
好的,那么如何将设置数据正确地注入OSX上的视图控制器?