Выпуск контроллера представления после перехода CAT: я делаю это правильно? - PullRequest
0 голосов
/ 17 марта 2011

Мое приложение загружает первый вид (используется для входа в веб-сервис).Когда вход в систему успешен, он выполняет CATransition (базовый kCATransitionFromRight), чтобы показать второе представление и скрывает первое представление.Я установил делегата перехода на себя, чтобы я мог использовать -(void)animationDidStop:(CATransition *)theAnimation finished:(BOOL)flag.

Когда этот метод вызывается (сразу после завершения перехода), я хочу освободить первое представление, так как я не будунужно большеОднако, когда я звоню [firstView release]animationDidStop:), счет удержания, кажется, не меняется.Я использовал [loginView retainCount], чтобы проверить это, и так как я знаю, что это не всегда надежно, мне было интересно: я делаю это правильно?

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 марта 2011

взято из книги «Какао Touch для iPhone OS 3» - аналогичный подход.
Они настраивают анимацию, удаляют старое подпредставление, добавляют новое и затем фиксируют анимацию.

0 голосов
/ 17 марта 2011

Jilouc в своем комментарии прав, не забудьте проверить "retaincount" ...

если вы хотите быть уверены, что ваш объект сначала просматривается, просто добавьте

NSLog(@"i'm removing myFirstView"); 

в его

-(void)dealloc{
}

способ ...

если вы получите NSLog в окне консоли отладчика, убедитесь, что вы удалили / выпустили его правильным образом ...

кстати ... правильный путь может быть примерно таким:

в animationDidStop:

if (firstView!=nil){
    [firstView.view removeFromSuperview];
    [firstView release];
    firstView=nil;
}
...