uipopovercontroller出于某种原因复制自己
-
15-10-2019 - |
题
一个非常奇特的错误:
我有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 ...];
}
您可以将属性用于简单的内存管理,也可以自己处理。
不隶属于 StackOverflow