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