在另一个不相关的视图控制器中引用 属性
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]
获取实例
我对 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]