防止UIPopover上的动画被外部点击解雇?

Jos*_*nce 5 ipad uipopovercontroller ios

当用户点击弹出窗口外,解雇是动画的.有没有办法将解雇动画设置为NO?我在谷歌上广泛搜索和搜索.

UIPopover状态的文档:

显示时,弹出窗口外部的水龙头会自动解除弹出窗口.要允许用户与指定视图交互而不关闭弹出框,可以将一个或多个视图分配给passthroughViews属性.弹出窗口内的点击不会自动导致弹出窗口被解除.您的视图和视图控制器代码必须显式处理弹出窗口内的操作和事件,并根据需要调用dismissPopoverAnimated:方法.

我已经实现了这个dismissPopoverAnimated:方法,NO并且当我调用该方法时,它适用于所有情况.

问题是当用户点击popover外部时,dismissPopoverAnimated:不会被调用.

弹出窗口外的水龙头会导致弹出窗口自动关闭.

这种解雇是动画的.似乎没有办法控制解雇.我正在使用popover为绘图应用程序呈现颜色选择器.在弹出窗口完成动画制作之前,不会注册要绘制的点击.这会产生明显的延迟,因为您无法立即绘制但必须等待动画完成.

我认为这- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController可行,但AFAIK无法在此方法中设置动画属性.只需返回是或否.

我可以实现一种不同的方法来将动画设置为NO吗?

ger*_*iam 9

在呈现UIPopoverController的视图控制器中,符合UIPopoverControllerDelegate协议并实现以下委托方法.我只是测试了它,它确实解除了没有动画的弹出窗口.

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
    [self.myPopoverController dismissPopoverAnimated:NO];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

只需确保已将弹出控制器的委托设置为实现此目的的视图控制器.