を使用しUIPopoverController
て contentViewController を指定すると、contentViewController の割り当てを正しく解除できないようです (contentViewController.viewDidUnload が呼び出されないという事実から明らかなように)。
ポップアップを作成して表示するコード:
PopupTestViewController *popupTest = [[PopupTestViewController alloc] initWithNibName:@"PopupTestViewController" bundle:nil];
popupTest.mainViewController = self;
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:popupTest];
self.popoverController.popoverContentSize = popupTest.view.frame.size;
self.popoverController.delegate = self;
[self.popoverController presentPopoverFromRect:button.frame inView:button.superview permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
contentViewController
ここで、 (上記のコードでは、これはPopoverTestViewController
)が閉じられたときに割り当てを解除する必要があると想定していますUIPopoverController
(クリックしてオフにするか、明示的に閉じるか)。しかし、viewDidUnload
呼び出されることはありません。ただし、 の dealloc メソッドを定義するPopoverTestViewController
と、適切に呼び出されることに気付きました。
だから私の質問は:viewDidUnload
が呼び出されないのはなぜですか? (そして私はARCを使用しています)。