2012-02-13 10 views
0

touchesBeganメソッドを使用してUIViewを実装しています。touchesBeganは、UIViewオブジェクトを解放した後に呼び出されません。

サブビューコレクションでの追加後にこのUIViewを作成せずに作成すると、すべて正常に動作します。

しかし、私が良い市民で、サブビューで追加した後にオブジェクトをリリースすると、触れているbegansは呼び出されません。

これは私のコードです:のUIViewControllerを挿入

。 OTTestResultはUIViewののコントローラーです:

OTTestResultオブジェクトで
-(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実装:

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

誰もが私が間違ってやっている知っていますか?

ありがとうございました。

+0

このコンテキストでは、どのようなクラスが自己ですか?このコードはUIViewControllerのサブクラス内にありますか? –

答えて

2

しかし、私が良い市民で、サブビューで追加した後にオブジェクトをリリースすると、触れている人は呼び出されません。

にはsubviewsを追加していません。あなたはresult.viewを追加しました。あなたはresultをリリースしましたが、誰もそれを保持しておらず、割り当てを解除しました。サブビューコントローラを保持する必要がある場合は、サブビューコントローラをivarで保持する必要があります。

関連する問題