3

次のように子ViewControllerを追加しています。

loginViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
    loginViewController.delegate = self;

[self addChildViewController:loginViewController];
[self.view addSubview:loginViewController.view];
loginViewController.view.frame = self.view.bounds;
[loginViewController didMoveToParentViewController:self];

そしてそれを次のように削除します:

[loginViewController willMoveToParentViewController:nil];
[loginViewController.view removeFromSuperview];
[loginViewController removeFromParentViewController];

私が正しく理解していれば、LoginViewControllerでdeallocをトリガーする必要がありますが、そうではありませんか?私は何かが足りないのですか?

4

1 に答える 1

0

そうではありません。コントローラーのビューを削除しても、コントローラーが解放されることとは関係なく、コントローラーのビューのみが削除されます (コントローラーによって保持されるため、割り当ては解除されません。

ありますが[self addChildViewController:loginViewController];、どこかに保管していますか?おそらく配列?もしそうなら、あなたの漏れがあります。置いたところから取り除く必要があります

于 2012-12-04T14:06:47.597 に答える