objective-c多视角控制器

objective-c多视角控制器,objective-c,uipopovercontroller,Objective C,Uipopovercontroller,我在UIView中有多个popovercontroller。 我可以为一个popover调用PopOvercontrollerdDismissPopover方法,但无法为所有PopOvercontroller调用相同的方法 有人能给我建议一下,我怎样才能做到这一点?你能打电话是什么意思?您是否将UIPopoverController子类化,并自己调用该方法 如果你的意思是“当我的爆米花被丢弃时,它不会被调用”,那么我们需要更多的信息。在某些情况下,这是特定的行为。让我引用文件中的话: popov

我在UIView中有多个popovercontroller。 我可以为一个popover调用PopOvercontrollerdDismissPopover方法,但无法为所有PopOvercontroller调用相同的方法


有人能给我建议一下,我怎样才能做到这一点?

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

如果你的意思是“当我的爆米花被丢弃时,它不会被调用”,那么我们需要更多的信息。在某些情况下,这是特定的行为。让我引用文件中的话:

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

如果您有多个弹出窗口,并且想知道哪一个刚刚被取消,那么您必须在方法本身中进行比较

根据您的评论进行编辑:

该方法始终称为
popcovercontrollerdiddismisspover:(uipopcovercontroller*)popcovercontroller
。此方法由用户拒绝的任何popover触发。如果有两个不同的弹出窗口需要不同的终结,则必须在此方法中区分它们。这就是为什么它有一个参数,在该参数中,popover将
self
,一个指向自身的指针

您的方法应如下所示:

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

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

我有两个PopoverViewController实例(firstPopover和secondpopover)。当第一个Popover和第二个Popover被解除时,我需要执行一些操作。如果我已经创建了PopoverViewController的popover命名实例,则-(void)PopOvercontrollerdDismissController可以工作,但当我写入-(void)FirstPopOvercontrollerdDismissController时无法工作。我尝试了您建议的代码,但PopOvercontrollerdDismissPover方法根本没有控制。我正在执行NSLOG(@“第一个Popover解除”)NSLOG(@“第二个Popover解除”)NSLOG(@“第三个Popover解除”)当爆米花流行起来dismissed@krishna您是否已将viewController设置为弹出窗口的代理?@krishna然后我不确定出了什么问题,如果没有更多的代码,我就无法判断。UIPopoverController的每个实例在其代理被用户解除时调用此方法(但在以编程方式解除时除外)。