【问题标题】:disable dismissal of uipopoverview controller禁用 uipopoverview 控制器的解雇
【发布时间】:2011-10-17 10:06:18
【问题描述】:

当我们在popoverview 之外点击或触摸时,UIPopoverController 会自动关闭。 我想限制这种自动弹出框关闭。

【问题讨论】:

  • 我已经在下面回答了,但这实际上在文档概述的第三行中进行了介绍。请在发布 SOF 问题之前至少浏览一下文档。
  • 不知道为什么这个问题被否决了,我觉得它很有用。

标签: objective-c ipad ios4 uipopovercontroller


【解决方案1】:

is there a way NOT to have the popover dismissed when pressing outside it?”的副本

有一个非常简单且合法的解决方案。在呈现UIPopoverController 的视图控制器中,遵守UIPopoverControllerDelegate 协议并实现以下委托方法。我刚刚对此进行了测试,它确实可以防止弹出框关闭。

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
    return NO;
}

只需确保您已将弹出框控制器的委托设置为实现此功能的视图控制器。

您可以使用[popoverController dismissPopoverAnimated:NO]; 方法关闭弹出框。

【讨论】:

  • +1 @Sam...有时候真的比使用 self.myPopovercontroller.passthroughViews=[NSArray arrayWithObject:self.view]; 更好。
【解决方案2】:
self.myPopovercontroller.passthroughViews=[NSArray arrayWithObject:self.view];

【讨论】:

  • 嗨拉维,我有一个疑问,我想你已经知道答案 UIPopoverController 在从 UINavigationController 内的 navigationItem 打开时未解散我的导航项返回,过滤器,排序,设置......当我单击过滤器导航项时popoverView 控制器工作正常,但问题是如果我单击其他导航项,如返回、排序、设置不关闭..当我们点击或触摸外部导航栏弹出窗口不关闭时如何纠正这个问题?
  • 如果您不希望用户与下面的视图进行交互,这不是一个好的解决方案。
【解决方案3】:

在委托中实现popoverControllerShouldDismissPopover:,除非您愿意,否则您可以阻止它消失。

【讨论】:

    【解决方案4】:

    阅读UIPopoverController 文档。具体...

    显示时,在弹出窗口外点击会导致弹出窗口 被自动解雇。为了让用户与 指定视图而不关闭弹出框,您可以分配一个或 passthroughViews 属性的更多视图。在弹出框内点击 window 不会自动导致弹出框被关闭。您的 视图和视图控制器代码必须处理内部的动作和事件 popover 显式调用dismissPopoverAnimated: 方法为 需要。

    【讨论】:

      猜你喜欢
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      相关资源
      最近更新 更多