繁体   English   中英

UIPopoverController委托没有被调用

[英]UIPopoverController delegate not getting called on dismiss

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

按下按钮时:

 [self.popover dismissPopoverAnimated:YES];

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

 [self.popover.delegate popoverControllerDidDismissPopover:self.popover];

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

popoverControllerDidDismissPopover:在委托时“dismissPopoverAnimated:”不叫被使用。

来自popoverControllerDidDismissPopover:Apple文档 popoverControllerDidDismissPopover:UIPopoverControllerDelegate

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

解散弹出窗口有两种方法。 (a)在弹道外攻击; (b)以编程方式进行

[self.popover dismissPopoverAnimated:YES];

如果您以编程方式执行,那么文档( https://developer.apple.com/library/ios/documentation/uikit/reference/UIPopoverControllerDelegate_protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIPopoverControllerDelegate/popoverControllerDidDismissPopover : )说:

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

因此,不自动调用委托是正常的行为,你正在做什么(自己调用)是好的。

在Dismiss上没有调用popoverControllerDidDismissPopover,但是当你在popoverController内容视图外面单击时调用它。

https://developer.apple.com/library/ios/documentation/uikit/reference/UIPopoverControllerDelegate_protocol/Reference/Reference.html#jumpTo_4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM