一个非常奇特的错误:

我有BarbuttonItem,它弹出了这样的UipopoverController:

-(void) addNewProjectButtonClicked:(id)sender
{
    //Some Preparations....

    [popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

正如预期的那样,弹出控制器出现在正确的位置。

现在,我希望当我触摸时 任何地方 在弹出窗口外,它将被驳回。
好吧,唯一的问题是,当我再次击中Barbutton(弹出弹出式弹出窗口的那个),而不是解雇旧的,并按照我的期望呈现新的 其他 在现有的顶部弹出。这意味着,当我一次又一次地按一下时,我会得到一堆弹出声,只能在其他地方多点击就可以被解散。

我知道我可以在这里使用一些罐头设计模式来解决这个问题,但是没有一种更简单的内置方式来照顾它吗?

谢谢!

有帮助吗?

解决方案

几个月前,我遇到了同样的问题,认为当我轻拍时它会解散 任何事物 但事实并非如此。

我要处理的方式是保留对旧弹出案的参考,并在 UIBarButtonItem 被窃听。

-(void) addNewProjectButtonClicked:(id)sender
{
    [popover dismissPopoverAnimated:YES];
    // Set it up again.
    [popover ...];
}

您可以将属性用于简单的内存管理,也可以自己处理。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top