希望有人可以帮助我学习一些关于iOS编程代表的新内容。
我有一个“MainViewController”,它是应用启动时的第一个VC。我是一种使用不同UIImageViews的模型选择,在选择其中一个之后,我正在推动一个新的VC。我想用一个委托来处理modelChoice,所以所有其他的viewControllers都可以听取它并根据用户的选择采取行动。
但这是否意味着我必须在每个VC中分配一个“MainViewController”的新实例?那是什么解决方案?我如何创建(我认为它的名称)静态委托?
很高兴知道.. 谢谢分享..
答案 0 :(得分:1)
您可以将MainViewController设为单例类:
static MainViewController* ctrl = nil;
+(MainViewController*) sharedInstance {
@synchronized( ctrl ) {
if( !ctrl ) {
ctrl = [[MainViewController alloc] init];
}
}
return ctrl;
}
然后你可以从任何类访问它:[MainViewController sharedInstance]。
您还可以向MainViewController添加方法,如:
-(void) addListener:(NSObject<ListenerProtocol>*) listener;
当您创建其他视图控制器时,请致电:
[[MainViewController sharedInstance] addListener: newVC];