ОБНОВЛЕНИЕ: я сделал ошибку в своей отладке - этот вопрос не является релевантным - см. Комментарий ниже.
Примечание.
Когда мое приложение запускается - я представляю контроллер вида внутри UINavigationController
с presentViewController:animated:completion
.Этот контроллер представления загружает второй контроллер представления в стек навигации.Второй контроллер вида использует [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]
, чтобы отклонить себя.Моя проблема в том, что ни dealloc, ни viewDidUnload никогда не вызываются в первом контроллере представления.Однако, с инструментами, я вижу, что контроллер представления больше не выделяется, как только представленные контроллеры представления отклоняются.Код, который представляет первый контроллер вида:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// check if our context has any accounts
if( [self.accounts count] == 0 )
{
// Display the Add Account View Controller
MySettingsViewController *settingsVC = [[MySettingsViewController alloc] initWithNibName:@"MySettingsViewController" bundle:nil];
settingsVC.appContext = self.appContext;
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:settingsVC];
navVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
// Display the Add Account View Controller
}
else
{
navVC.modalPresentationStyle = UIModalPresentationFormSheet;
}
[self presentViewController:navVC animated:YES completion:nil];
}
}
Итак, у меня нет ссылок на settingsVC, которые должны остаться, но я не знаю, почему не вызывается мой dealloc.Любая помощь будет великолепна.