UIPopoverController委托没有被调用

fra*_*ish 12 delegates objective-c uipopovercontroller ios

我分配了popover对象o它的contentViewController,我将dismiss代码放在一个位于内容视图控制器中的按钮中.

按下按钮时:

 [self.popover dismissPopoverAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

被叫,弹出被解雇.但是,不会自动调用委托的方法.我以为我没有设置它的代表,但它就在那里.如果我在dismissPopoverAnimated行之后添加以下行,则正确调用delegate ...

 [self.popover.delegate popoverControllerDidDismissPopover:self.popover];
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它不"自动"调用委托的方法.怎么会发生这种情况?

小智 16

popoverControllerDidDismissPopover:当"dismissPopoverAnimated:"在委托不叫被使用.

苹果公司的文档进行popoverControllerDidDismissPopover:UIPopoverControllerDelegate:

弹出控制器不会调用此方法来响应对dismissPopoverAnimated:方法的编程调用.如果以编程方式关闭弹出框,则应在调用dismissPopoverAnimated:方法后立即执行任何清理操作.