objective-c多个popoverviewcontroller

时间:2011-06-22 08:57:14

标签: objective-c uipopovercontroller

我在UIView中有多个popovercontroller。 我可以为一个popover调用popoverControllerDidDismissPopover方法,但是无法对所有popovercontrollers执行相同的操作。

任何人都可以建议我,我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

你能说什么意思?你是否将UIPopoverController子类化,并自己调用该方法?

如果您的意思是“当我的弹出窗口被解雇时不会被呼叫”,我们需要更多信息。在某些情况下,这是指定的行为。让我引用文档:

  

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

如果您有多个弹出式窗口并且想要知道哪个弹出窗口刚被解除,则您必须在方法本身中进行比较。

根据您的评论编辑:

该方法始终称为popoverControllerDidDismissPopover:(UIPopoverController *)popoverController。此方法由任何弹出窗口触发,该弹出窗口由用户解除。如果您有两个不同的弹出窗口需要不同的终结,您必须在此方法中区分它们。这就是为什么它有一个参数,其中弹出窗口放置self,一个指向自己的指针。

您的方法应如下所示:

popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
    if (popoverController == myFirstPopoverController)
    {
        //do something
    }

    if (popoverController == mySecondPopoverController)
    {
        //do something else
    }
}