Почему initWithRootViewController не сохраняет класс ViewController, который передается в него?

StackOverflow https://stackoverflow.com/questions/1054993

  •  20-08-2019
  •  | 
  •  

Вопрос

У меня есть пользовательский ViewController с именем SourceListViewController, и я добавляю его в UINavigationController, представление которого затем добавляется в окно приложения iphone.После передачи SourceListViewController в UINavigationController я освобождаю sourceListViewController.

SourceListViewController *sourceListVC = [[SourceListViewController alloc] initWithNibName:@"SourceListViewController" bundle:nil];
UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:sourceListVC] autorelease];
[sourceListVC release];

Когда я делаю это, приложение завершает работу после загрузки представления на телефон.Когда я закомментировал последнюю строку, приложение заработало нормально.Разве initWithRootViewController не должен сохранять копию sourceListVC?

Это было полезно?

Решение

Вы автоматически запускаете NavigationController.Так что, если NavigationController будет автоматически выпущен (что, вероятно, произойдет в следующем цикле выполнения), то же самое произойдет и с sourceListVC.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top