0
我之前用太多的代碼問了這個問題。代表在View Controller中設置,不維護在子視圖中
ViewController在ViewController中初始化一個UIView鏈,Controller >> View >> SubView。子視圖初始化後的視圖控制器設置爲其委託:
aSubView.delegate = self;
NSLog(@"[email protected]",aSubview.delegate),
返回視圖控制器,所以我知道它被設置。
在SubView中,NSLog(@"[email protected]",self.delegate),
返回隨機廢話,如hr.lproj或到Foundation框架的文件路徑。
嘗試實現任何委託方法時崩潰,因爲委託沒有鏈接到ViewController,而是隨機性。
這就是SubView.h文件看起來像:
#import "TestDelegate.h"
@interface TestSubView : UIView {
id<TestDelegate> delegate;
}
@property (assign) id<TestDelegate> delegate;
編輯:的ViewController在應用程序委託初始化爲這樣:
ViewController *controller = [[ViewController alloc] init];
[window addSubview:controller.view];
[controller release];
唯一的其他東西我添加到應用程序委託,在默認情況下導入的ViewController標頭
不要這麼認爲,因爲它是一個鏈,如果視圖控制器被釋放,那麼其他所有事情,我會告訴,因爲子視圖的背景設置爲紅色 – 2010-11-22 23:50:05