2010-11-22 32 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

相關問題