【问题标题】:Interact with other views while a popover is active在弹出框处于活动状态时与其他视图交互
【发布时间】:2012-04-01 04:48:36
【问题描述】:

我有一个toolBar,我在上面设置了两个UIBarButtonItem。两个UIBarButtonItem 都包含UIButtons 作为它们的customViews。

我为他们的Touch Up Inside 事件激活了一个弹出框,如下所示,

    [popover1 presentPopoverFromBarButtonItem:buttonItem1 permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

我在主视图中有另一个名为 clearFiltersUIButton。 (这也是包含上述toolBar 的视图。)我已经为clearFilters 按钮的Touch Up Inside 事件声明了一个方法。

我的问题是, popover 处于活动状态时,我无法与 clearFilters 按钮交互。因此,我正在寻找一种解决方案来与此 clearFilters 按钮进行交互,同时 popover 处于活动状态。

我尝试为 popover 添加passthroughViews 属性,如下所示,但它没有按我的预期工作。

popover1.passthroughViews = [NSArray arrayWithObject:clearFiltersButton];

可能是什么原因。正如文档所提到的,我看不到任何问题。

我希望如果上述事情是正确的,那么 clearFilters 按钮的Touch Up Inside 事件应该会被触发。

所以,如果有任何问题或必要的方法来处理这件事,请告诉我。

我正在开发 XCode4 和 iOS 4.3。

谢谢。

【问题讨论】:

  • 你试过让整个navigationBar passThrough吗?
  • 你评论后我试过了。但没有结果。有趣的是,当弹出框处于活动状态时,其他 UIBarButtonItem 响应我的点击而没有 passthroughViews 属性。因此,对于工具栏外的其他视图,我需要这种行为。

标签: objective-c ios uiview interactive uipopover


【解决方案1】:

UIPopoverController documentation 揭示了为什么在弹出框可见时可以点击其他栏按钮:

“在呈现​​弹出框时,此方法会将拥有该按钮的工具栏添加到弹出框的直通视图列表中。”

尝试查询和记录弹出框的直通视图。它里面已经有东西了吗?也许这样的事情会起作用?

myPopover.passthroughViews = [myPopover.passthroughViews arrayByAddingObject:clearFilters];

我没有测试过这段代码,但值得一试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-23
    • 2017-01-10
    • 2018-02-28
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多