2010-11-22 93 views
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标头

回答

1

是否有可能视图控制器对象被释放/处理之间的两个调用NSLog?

+0

不要这么认为,因为它是一个链,如果视图控制器被释放,那么其他所有事情,我会告诉,因为子视图的背景设置为红色 – 2010-11-22 23:50:05

相关问题