在另一个不相关的视图控制器中引用 属性

Reference a property in another unrelated View Controller

我对 Cocoa 应用程序架构的最佳实践有疑问。如果您查看我的应用程序故事板的屏幕截图,左下角有一个视图控制器(其中有许多控件),并且在右侧的拆分视图控制器中有两个具有 table 视图的视图控制器。我需要引用控件视图控制器(左侧)内每个 table 视图控制器(右侧)中的数组控制器。

如何通过视图层次结构(通过不同的容器视图等)一直到达那些数组控制器?

我当然可以在我的应用委托中引用它们,它是一个单例,然后从那里获取它们,但我们都知道这不是好的 OOP 架构。

您可以为此创建自己的 Singleton Class。喜欢 AppNameDataManager 然后创建属性并从您必须设置的视图控制器中设置它们,然后进入您必须获取的视图控制器。

#define SINGLETON_FOR_CLASS(classname)\
+ (id) sharedManager {
    static dispatch_once_t pred = 0;\
    static id _sharedObject = nil;
    dispatch_once(&pred, ^{
    _sharedObject = [[self alloc] init];
    });\
    return _sharedObject;
}

只需导入 class 并通过调用 [ClassName sharedManager]

获取实例