在IB中,我在UIScrollView中創建了UIView。兩者的文件所有者是名爲JLViewController的UIViewController。 UIView連接到BodyClock類。如何將子視圖的代理設置爲superviews控制器
BodyClock類在視圖內繪製圖形。它還創建了幾個作爲觸摸熱點的小視圖。當一個熱點被觸摸時,它會顯示一個提示信息,並帶有一個按鈕以獲取更多詳細信息。我需要告訴JLViewController顯示詳細信息。我想我可以通過使ViewController成爲HotSpot的代表來實現這一點。作爲我在BodyClock類中創建熱點的方式,我無法弄清楚如何將熱點代理設置爲JLViewController。我試圖做這樣的事情..
//Code in BodyClock
//create the hot spot
id viewController = [self nextResponder];
HelpHotSpot *helpHotSpot = [[HelpHotSpot alloc] initWithFrame:CGRectMake(start_x, melatoninHeightEnd_y, 80, 40)];
helpHotSpot.delegate = viewController;
[viewController addSubview:helpHotSpot];
[helpHotSpot release];
//Code in the HotSpot after touch and request for more info
//notify JLViewController to display the details
if ([self.delegate respondsToSelector:@selector(hotSpotMore:)]) {
[self.delegate hotSpotMore:itemDetails];
}
一切工作除了respondsToSelector失敗。如果我NSLog viewController或self.delegate我得到...
UIScrollView:0x7443c20;框架等...
我期待JLViewController:而不是UIScrollView:所以我認爲這是問題。
如何爲這些子視圖設置委託給ViewController?
是否有可能,或者我應該使用通知?
我仍然對如何做到這一點感興趣,但已經通過使用NSNotificationCenter解決了我的問題。非常容易實施,效果很好。 – user278859 2010-11-08 03:08:55