如何从main-viewcontroller创建静态委托?

时间:2011-02-23 22:47:55

标签: iphone delegates uiviewcontroller

希望有人可以帮助我学习一些关于iOS编程代表的新内容。

我有一个“MainViewController”,它是应用启动时的第一个VC。我是一种使用不同UIImageViews的模型选择,在选择其中一个之后,我正在推动一个新的VC。我想用一个委托来处理modelChoice,所以所有其他的viewControllers都可以听取它并根据用户的选择采取行动。

但这是否意味着我必须在每个VC中分配一个“MainViewController”的新实例?那是什么解决方案?我如何创建(我认为它的名称)静态委托?

很高兴知道.. 谢谢分享..

1 个答案:

答案 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];