我想讓我的控制器訂閱來自視圖的通知。但是,在這之前,我想確認一下如果可以查看其控制器的實例嗎?視圖可以知道其控制器嗎?
讓我爲您提供一個更具體的例子,說明我的想法。
我控制器創建的視圖,並通知它,這是它的控制器
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