2012-02-13 31 views
0

我正在使用touchesBegan方法實現UIView。touchesBegan在釋放UIView對象後不會調用

當我添加子視圖集合後創建此UIView而不釋放後,所有工作正常。

但是,當我是一個好公民,並且我在添加子視圖後釋放對象時,觸動求職者不會被調用。

這是我的代碼:

插入UIViewController。 OTTestResult是的UIView的控制器:

-(void)validateWasPushed:(id)sender 
{ 
    float nota = [testQuestions getTestResults]; 
    int ok = [testQuestions getOkNumber]; 
    int fail = [testQuestions getFailNumber]; 

    OTTestResult *result = [[OTTestResult alloc] init]; 

    [self.view addSubview:result.view]; 

    [result loadWithNumber:nota testName:[testQuestions testName] okResponses:ok failResponses:fail]; 


    [result release]; 

} 

而實施的touchesBegan在OTTestResult對象:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self.view removeFromSuperview]; 
} 

任何人都知道我在做什麼錯?

謝謝。

+0

在這種情況下什麼是自我?這段代碼是否在UIViewController的子類中? – 2012-02-13 21:25:57

回答

2

但是,當我是一個好公民,並且我在添加子視圖後釋放對象時,觸動求職者不會被調用。

您沒有將result添加到subviews。您添加了result.view。然後您發佈了result,這是其他人所沒有的,並且它已經釋放。如果您需要留在伊維爾,您需要持有伊維爾的子視圖控制器。

相關問題