0

我正在使用 touchesBegan 方法实现 UIView。

当我在添加子视图集合后创建此 UIView 而不释放时,一切正常。

但是,当我是一个好公民并在添加子视图后释放对象时,不会调用 touches 开始。

这是我的代码:

插入 UIViewController。OTTestResult 是 UIView 的 Controller:

-(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];

}

并在 OTTestResult 对象中实现 touchesBegan:

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

有人知道我在做什么错吗?

谢谢。

4

1 回答 1

2

但是,当我是一个好公民并在添加子视图后释放对象时,不会调用 touches 开始。

你没有添加resultsubviews. 您添加了result.view. 然后你释放了result,没有其他人持有,它被释放。如果您需要它留在周围,您将需要在 ivar 中保留子视图控制器。

于 2012-02-13T21:30:39.087 回答