当我使用 aUIPopoverController
并给它一个 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)。