我正在使用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];
}
并在OTTestResult对象中触及实现实现:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view removeFromSuperview];
}
任何人都知道我做错了什么?
感谢。
答案 0 :(得分:2)
但是,当我是一个好公民并且我在添加子视图后释放该对象时,触摸并不会被调用。
您没有将result
添加到subviews
。您添加了result.view
。然后,您释放了result
,其他人没有持有,并且已取消分配。如果你需要它,你需要在ivar中保持子视图控制器。