当弹出窗口打开时,如果单击它,它将关闭。有可能阻止这个吗?基本上我有以下问题。
当弹出窗口关闭时,我需要一个要处理的功能。如果我从弹出窗口设置一个具有解除功能的按钮,那么我可以将该功能放入dismiss方法中,但是如果用户点击屏幕则不会检测到该功能。
如果单击它就可以停止弹出窗口关闭。 要么 是否可以检测到这一点,从而允许调用我需要的函数。
由于
詹姆斯
答案 0 :(得分:6)
假设您正在谈论当您在弹出窗口外点击时弹出窗口的默认行为,防止这种情况的解决方案是制作弹出模式。
为此,请在popover的内容视图控制器上将modalInPopover
属性设置为YES
。
BTW - 如果您想通过点击外部来检测用户是否解除了弹出窗口,则需要实施UIPopoverControllerDelegate
方法popoverControllerDidDismissPopover:
。
答案 1 :(得分:6)
您可以使用这两种方法,但第二种方法适合您的方案:
/* Called on the delegate when the popover controller will dismiss the popover. Return NO to prevent the dismissal of the view.
*/
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController;
/* Called on the delegate when the user has taken action to dismiss the popover. This is not called when -dismissPopoverAnimated: is called directly.
*/
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController;
请记住实现UIPopoverdelegate并将Delegate设置为self。