UIViewController становится сохраненным - PullRequest
0 голосов
/ 25 января 2012

В моем приложении три UIViewController объекта.

V1 -> V2 -> V3

Когда я перехожу с V2 на V3, я использую push и с V3 на V2 с помощью pop.Но почему-то объекты V3 сохраняются.

Я думал, что когда мы делаем pop, все объекты - объекты V3 - из стека удаляются.Однако в данном случае этого не происходит.

Может кто-нибудь подсказать, как решить эту проблему?

Спасибо

Ответы [ 4 ]

1 голос
/ 25 января 2012
 V3 *v3 = [[[V3 alloc] initWithNibName:@"V3" bundle:nil] autorelease]; 
             [self.navigationController pushViewController: v3 animated:YES];

это стандартный способ нажатия контроллера на панели навигации.

Либо у вас отсутствует авто-релиз или релиз v3, либо вы сохраняете его где-то еще ..

0 голосов
/ 26 января 2012

В дополнение к тому, что сказал Шубханк, убедитесь, что вы уравновешиваете удержания и освобождения в этих методах внутри самого UIViewController:

viewDidLoad & viewDidUnload

viewWillAppear: &viewWillDisappear:

Также убедитесь, что вы освобождаете любое свойство с атрибутом «retain» или «copy» в вашем методе dealloc.

Пока вы все правильно очищаете в deallocи ваш счет сохранения / выпуска для самого UIViewController сбалансирован (см. ответ Шубханка), у вас не возникнет проблем, и все будет выпущено, как и ожидалось.

0 голосов
/ 25 января 2012

Когда вы используете навигацию push, вызывается метод следующего представления

- (void)viewDidLoad{
}

и когда вы вернетесь к своему предыдущему виду, оно будет называться только

- (void)viewWillAppear:(BOOL)animated{
}

теперь происходит то, что происходит, когда вы переходите назад с pop, тогда он не вызывает ваш viewDidLoad, поэтому ваш NSMutableArray и любой объект, который вы назначили в этом представлении, не будут выделены ..

0 голосов
/ 25 января 2012

Так же, как вы нажимаете контроллер вида с помощью контроллера навигации, добавьте строку ниже, чтобы освободить его.

Покажите нам некоторый код того, что на самом деле вы делаете.Тогда мы можем сказать вам точно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...