如何在展示新UIPopoverControllers时解雇其他UIPopoverControllers?

时间:2010-10-19 13:41:13

标签: iphone ipad uipopovercontroller

如果我有几个按钮启动相同的弹出式窗口,如何在显示新的弹出框之前解除已经可见的弹出窗口?

我有一个局部变量self.popover,设置为当前的popovercontroller;我检查这个popover变量,看它是否可见;如果它是可见的然后我解雇它然后呈现新的,但新的不会变得可见,直到我触摸它两次。

2 个答案:

答案 0 :(得分:2)

尝试使用[myPopover dismissPopoverAnimated:NO]解除现有的popover

答案 1 :(得分:1)

发生这种情况的原因是,默认情况下,只要在弹出窗口外发生触摸,您的弹出窗口就会自动消失;触摸事件本身永远不会传播到按钮,因为它“属于”UIPopoverController。一旦发生这种情况,您必须再次触摸该按钮才能重新弹出。

最好的解决方法是保留一个指向UIPopoverController的指针,并将你希望解除/弹出弹出窗口的按钮的NSArray发送到控制器。

然后在每个处理程序的处理程序中,检查是否存在弹出窗口。如果是这样,请将其关闭,然后弹出按钮的弹出窗口。