如何解决点击时不要关闭UIPopoverController
| 经过一番搜索,我找不到似乎对许多人有用的答案。 当用户单击外部某处时,有没有办法使“ 0”不消失?我希望用户必须使用“取消”按钮(是的,我意识到这可能以某种方式违反了Apple的HIG,但这是一种罕见的情况,从用户体验的角度来看很有意义)。 谢谢你的帮助。解决方法
您可以对点击发生的位置进行测试,并在弹出窗口的委托中返回NO。
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
, 只需在显示在UIPopoverController
中的UIViewController
上设置modalInPopover
属性。
popover = [[UIPopoverController alloc] initWithContentViewController:content];
content.modalInPopover = YES;
[popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
请注意,从iOS5开始,您必须在-viewDidAppear
内设置modalInPopover
。
, 因此,我意识到这是一个老问题。但是,对于今天正在寻找解决方案的任何人来说,都有一个更简单的答案。
如果使用情节提要Segue,则可以在Segue上设置passthrough属性,以允许与视图中的其他对象进行交互。如果这样做,则在弹出框的边界之外单击不会关闭弹出框。
这里有一些更多信息:
在弹出式窗口中使用“锚定”和“传递”是什么?
这是Apple文档的摘录:
允许用户与指定的视图交互而不关闭
弹出窗口,您可以将一个或多个视图分配给passthroughViews
属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。