выгрузить вид после вызова presentModalViewController? - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть некоторый контроллер представления, который я вызываю следующим методом:

myViewController *myView = [[myViewController alloc] initWithNibName:nil bundle:nil];
    myView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:myView animated:YES];
    [myView release];

, если я использую приложение несколько раз, я получаю предупреждение о памяти, и приложение зависает на несколько секунд!Я думаю, причина в том, что я переключаю взгляд, но не разряжаю старый !!? !!? !!(я установил свои выходы на ноль и отпустил их)

как я могу выгрузить старый вид после переключения на новый?

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 15 апреля 2011

В классе, запускающем modalViewController, вы можете создать свойство для модального viewcontroller, которое вы сохраните. Тогда вы могли бы написать что-то вроде этого.

//This would be in an action or something...
if (self.myViewControllerProperty == nil) {
    self.myViewControllerProperty = [[[MyViewController alloc] initWithNibName:nil bundle:nil] autorelease];
}

[self presentModalViewController:self.myViewControllerProperty animated:YES];

Тогда вместо установки

myView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

Переместите этот код в modalViewController и напишите self.modalTransitionStyle = UIModalTransitionStyleCoverVertical; Я думаю, это выглядит чище, сохраняйте конфигурацию каждого отдельного viewcontroller отдельно, не перепутайте.

И, как сказала маклема, позвоните dissmissModalViewController, но вы, вероятно, делаете это ...

0 голосов
/ 15 апреля 2011

Может быть любое количество проблем, но вам не нужно (и не можете) выгружать старое представление. Убедитесь, что вы отпускаете объекты и устанавливаете выходные значения на ноль в viewDidUnload всех ваших контроллеров представления. viewDidUnload будет вызываться при предупреждении памяти, поэтому, если вы не обработаете его правильно, у вас будут утечки и возможный сбой. Кроме этого, трудно понять, что еще делает ваше приложение, что способствует сбою.

0 голосов
/ 15 апреля 2011

При переключении вида обязательно вызовите dismissModalViewController: (BOOL) анимированный на myViewController

...