touchesBegan не вызывается после освобождения объекта UIView - PullRequest
0 голосов
/ 14 февраля 2012

Я реализую UIView с помощью метода touchesBegan.

Когда я создаю этот UIView без публикации после добавления в коллекцию subviews, все работает нормально.

Но, когда я хороший гражданин и отпускаю объект после добавления в подпредставлениях, касания начинаются не вызывается.

Это мой код:

Вставка 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];

}

И касается реализации Beg в объекте OTTestResult:

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

Кто-нибудь знает, что я делаю не так?

Спасибо.

1 Ответ

2 голосов
/ 14 февраля 2012

Но, когда я добропорядочный гражданин и после добавления в подпредставлениях освобождаю объект, касания начинаются, не вызывается.

Вы не добавили result к subviews.Вы добавили result.view.Затем вы выпустили result, который никто больше не держит, и он освободился.Вам нужно будет удерживать контроллер суб-вида в иваре, если он вам нужен, чтобы оставаться рядом.

...