Увеличивает ли добавление Viewcontroller к контроллеру навигации счет сохранения? - PullRequest
0 голосов
/ 03 декабря 2011

Пожалуйста, не закрывайте этот вопрос и не упоминайте его как дубликат.

Мне нужна ваша помощь в подтверждении моего понимания.

Это применимо в VIew Controllers, добавленных в Navigation Controller.Парень RayNewbie в этом потоке упоминает, что если мы сохраним экземпляр контроллера вида, их счет удержания станет равным +2, а когда мы его вытолкнем, счет удержания уменьшится на 1Таким образом, сделка никогда не вызывается.

Правильны ли его аргументы?

Если они верны, они верны в следующем случае:

Прямо сейчас у меня есть два VC в качестве iVar в классе AppDelegate:

@property (retain, nonatomic) UserDetailsViewController *userdetailsVC;
@property (retain, nonatomic) PayDetailsViewController *paydetailsVC;

userdetailsVC = [[UserDetailsViewController alloc] initWithNibName:kuserDetailsVC bundle:nil];

paydetailsVC = [[PayDetailsViewController alloc] initWithNibName:kpayDetailsVC bundle:nil];

Я синтезирую iVars в файле .m.

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

-(void)method1{

 self.window.rootViewController = userdetailsVC;

}

-(void)method2{

 self.window.rootViewController = paydetailsVC;

}

Я что-то не так делаю в настройке корневого контроллера?

1 Ответ

2 голосов
/ 03 декабря 2011

Да, добавление контроллера вида к контроллеру навигации добавляет счетчик сохранения.Контроллер навигации поддерживает массив контроллеров представления.Когда вы добавляете контроллер вида туда, он добавляется в этот массив.Этот массив используется в вызовах pushViewController и popViewController.

При этом, то, как вы размещаете, не рекомендуется.Это более уместно: </p> <pre><code>UserDetailsViewController* u = [[UserDetailsViewController alloc] initWithNibName:kuserDetailsVC bundle:nil]; self.userdetailsVC = u; [u release]; PayDetailsViewController *p = [[PayDetailsViewController alloc] initWithNibName:kpayDetailsVC bundle:nil]; self.paydetailsVC = p; [p release];

Надеюсь, это поможет.

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