Когда я использую UIPopoverController
и дать ему contentViewController, я не могу показаться, чтобы получить contentViewController правильно освобождаться (о чем свидетельствует тот факт, что contentViewController.viewDidUnload никогда не вызывался).contentViewController.viewDidUnload UIPopoverController не вызывался
код для создания и отображения всплывающего окна:
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).
Как вы определяете свойство 'popoverController'' @? –
'@property (неатомный, сохранить) UIPopoverController * popoverController;' – caleb