检测iOS8中的popover dismiss

时间:2014-10-21 07:25:25

标签: ios ios8 uipopover

在我的iPad-app中,我通过在Storyboard中拖动并将popover选为segue,将UIButton连接到另一个UIViewcontroller。一切都运行正常,但用户可以通过触摸弹出右边的某个地方来解除弹出窗口。

如何在iOS8中检测到popover已被解散?在iOS7中,我可以使用UIPopoverDelegate -popoverDidDidmiss ...

但这不再适用了!?我google了很多但找不到任何解决方案。

4 个答案:

答案 0 :(得分:1)

你把你的

-(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
在启动UIButton的UIViewController中的

是什么? (不是在另一个popover UIViewcontroller?) 对于iOS 8.1来说,这对我很有用......

你必须委托给初始的UIViewController。

答案 1 :(得分:0)

我假设您正确设置了委托,但是您是否保留了popover,即将其分配给强大的属性?在ios7中,如果你没有保留popover,你会得到异常:'[UIPopoverController dealloc]到达,而popover仍然可见。在ios8中不再是这种情况,所以你得到了工作弹出窗口,你可以忽略它,但不再调用委托方法。

(坦率地说,我不知道为什么会这样。我认为至少“应该解雇popover”应该被调用)。

答案 2 :(得分:0)

您应该使用UIPopoverControllerDelegate和方法

popoverControllerDidDismissPopover:

完成你所需要的。

答案 3 :(得分:0)

在iOS8中,它使用UIViewController的UIPopoverPresentationController来呈现弹出窗口。 (您可以选择使用旧版UIPopoverController来手动构建弹出窗口。

如果您在iOS8上使用storyboard,可以设置UIViewController的popoverPresentationController委托来处理以下内容:

  • popoverPresentationControllerShouldDismissPopover:
  • popoverPresentationControllerDidDismissPopover:
相关问题