我在UIView中有多个popovercontroller。 我可以为一个popover调用popoverControllerDidDismissPopover方法,但是无法对所有popovercontrollers执行相同的操作。
任何人都可以建议我,我怎样才能做到这一点?
答案 0 :(得分:0)
你能说什么意思?你是否将UIPopoverController子类化,并自己调用该方法?
如果您的意思是“当我的弹出窗口被解雇时不会被呼叫”,我们需要更多信息。在某些情况下,这是指定的行为。让我引用文档:
弹出控制器不会调用此方法来响应对
dismissPopoverAnimated:
方法的编程调用。如果以编程方式关闭popover,则应在调用dismissPopoverAnimated:
方法后立即执行任何清理操作。
如果您有多个弹出式窗口并且想要知道哪个弹出窗口刚被解除,则您必须在方法本身中进行比较。
根据您的评论编辑:
该方法始终称为popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
。此方法由任何弹出窗口触发,该弹出窗口由用户解除。如果您有两个不同的弹出窗口需要不同的终结,您必须在此方法中区分它们。这就是为什么它有一个参数,其中弹出窗口放置self
,一个指向自己的指针。
您的方法应如下所示:
popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
if (popoverController == myFirstPopoverController)
{
//do something
}
if (popoverController == mySecondPopoverController)
{
//do something else
}
}