Я пытаюсь отобразить контроллер модального представления, содержащий NavigationController. Однако я не могу понять, где выпустить контроллеры. Обычно я бы просто выпустил контроллер после его отображения, но это не сработает. вероятно, что-то связано с контроллером навигации. Любая помощь будет замечательной! Вот код, о котором идет речь:Управление памятью с помощью UINavigationController внутри контроллера Modal View
-(IBAction)displayCreateModifyExerciseViewController:(id)sender {
CreateModifyExerciseViewController *controller = [[CreateModifyExerciseViewController alloc] initWithNibName:@"CreateModifyExerciseView"
bundle:nil];
controller.delegate = self;
controller.title = @"Create Exercise";
UINavigationController *modalNavController = [[[UINavigationController alloc] initWithRootViewController:controller] autorelease];
modalNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
controller.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Save"
style:UIBarButtonItemStyleDone
target:controller
action:@selector(done:)];
[self presentModalViewController:modalNavController animated:YES];
//I want to say [controller release];
// [modalNavController release];
//But that causes a crash because controller ends up dealloc-ing.
}
Контроллер который отображается контроллером навигации (modalNavController). Она должна освободить его. Ошибка возникает из-за того, что он как autoreleases 'modalNavController', так и специально освобождает его (в своем комментарии). Вот что вызывает крах. –
Вы правы! – Brad
Спасибо! Я никогда не автореклама ничего, если это возможно, поэтому я не заметил, что я случайно положил его туда! Я мог бы найти часы (думаю, я * действительно * уже искал часы, но ...) и не видел этого! – nosirrahcd