У меня есть пользовательский viewController, называемый SourceListViewController, и я добавляю его в UINavigationController, представление которого затем добавляется в окно приложения iphone. После передачи SourceListViewController в UINavigationController я освобождаю sourceListViewController.Почему initWithRootViewController не сохраняет класс viewController, который передается в него?
SourceListViewController *sourceListVC = [[SourceListViewController alloc] initWithNibName:@"SourceListViewController" bundle:nil];
UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:sourceListVC] autorelease];
[sourceListVC release];
Когда я это сделаю, приложение потерпит крах после загрузки изображения на телефон. Когда я прокомментировал последнюю строку, приложение работает нормально. Не предполагается ли initWithRootViewController сохранить копию sourceListVC?
Это не означает, что sourceListVC сохраняется. Так ли это, когда вы отпускаете NavigationController, все его ViewController также выпущены, и NVC не сохраняет контроллер корневого представления? – karim