更新:私のデバッグで間違いを起こしました。この質問はrelaventではありません - 下記のコメントを参照してください。解約時にUIViewControllerがdeallocまたはviewDidUnloadを受け取らない
注:私は私のアプリが起動すると
を数える自動リファレンスを使用しています - 私はpresentViewController:animated:completion
でUINavigationController
内のビューコントローラを提示。そのビューコントローラは、ナビゲーションスタックに第2のビューコントローラをロードする。 2番目のビューコントローラは、[self.presentingViewController dismissViewControllerAnimated:YES completion:nil]
を使用して自身を閉じます。私の問題は、deallocもviewDidUnloadも最初のView Controllerで呼び出されていないことです。しかし、計測器では、表示されたView Controllerが一旦消されると、View Controllerが割り当てられなくなったことがわかります。最初のビューコントローラを提示したコードは、私の周りの付着されなければならないsettingsVCへの参照を持っていないが、私のdeallocが呼び出されていない理由を私は知らない、だから、
- (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];
}
}
です。どんな助けも素晴らしいだろう。
私はばかです。私が間違ったビューコントローラにテストしていたdeallocメソッドを置いた。だから私のdeallocが意味を成していると呼ばれている。 – Brian