我想让我的控制器订阅来自视图的通知。但是,在这之前,我想确认一下如果可以查看其控制器的实例吗?视图可以知道其控制器吗?
让我为您提供一个更具体的例子,说明我的想法。
我控制器创建的视图,并通知它,这是它的控制器
self.gameView = [[GameView alloc] initWithController:self];
一旦完成,其认购的通知,从这一观点
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(saySomething:)
name:@"SaySomethingClever" object:nil];
同时认为做的事情,但是当正确的时间来临,它发布通知
[[NSNotificationCenter defaultCenter] postNotificationName:
@"SaySomethingClever" object:gvc];
为了我要做到这一点,该视图需要知道通知(gvc)的接收者。
我想利用这个机会和你是否以下是确定:
当initWithController
被调用时,视图
-(id) initWithController: (GameViewController*)g {
gvc = g;
return [self initWithFrame:CGRectMake(0, 0, 480, 300)];
}
其中initWithFrame:CGRectMake
是处理特定视图东西的私有方法。
一切工作正常,但是,我不知道这种做法是否在道德上是可以接受的
优秀的答案乔希!谢谢 – JAM 2012-02-27 05:26:26
很高兴有帮助!我写的时候会觉得有点ra ra。 – 2012-02-27 05:28:16