【问题标题】:presentPopoverFromRect causes my app to freezepresentPopoverFromRect 导致我的应用程序冻结
【发布时间】:2012-08-08 04:31:35
【问题描述】:

我正在显示一个按钮的弹出框,该按钮位于 UITableView 的标题中。

-(void) addButtonClicked:(id)sender{ [addPopOverVC setPopoverContentSize:CGSizeMake(POPOVER_WIDTH, numberOfRowsInTable * addOptionsTable.rowHeight)]; [addPopOverVC presentPopoverFromRect:[sender bounds] inView:sender allowedArrowDirections:UIPopoverArrowDirectionAny 动画:YES]; addPopOverVC.passthroughViews = nil; }

应用程序在第二行冻结(当我调用方法 presentPopoverFromRect 时),调试器中没有任何警告/错误。此外,当我尝试对其进行调试时,该步骤会在该行消失,并且应用程序变得无响应,就好像它从未返回过一样。 我以前没有见过这样的行为。 addPopOverVc 是一个 UIPopoverViewController。所有参数的值都不是 nil 。

【问题讨论】:

  • 我很确定您的意思是使用框架矩形而不是边界矩形。
  • @MarkAdams 边界矩形有什么问题?

标签: iphone ios uipopovercontroller


【解决方案1】:

1) 在这种情况下,sender 是触发点击事件的按钮。您不应该使用按钮来呈现弹出框,而是使用您想要呈现弹出框的真实视图。

2) 您确定addPopOverVC 已正确初始化和保留吗?

干杯, 安卡

【讨论】:

  • 按钮本身不是 UIView 吗? addPopOverVC 是一个 viewController 并使用它被保留。
  • 我自己试过了,它对我有用,所以我仍然认为你的 addPopOverVC 不是一个有效的对象。
  • 我已经对此进行了仔细检查。它既不是 nil 也不是解除分配的。如果它本来是 nil ,那么传递给 nil 的消息将无效。如果它会被释放,那么它将在第一行(很容易用僵尸标志检测到)而不是在第二行崩溃。我觉得我的参数有问题!!对此的任何反馈
  • 好的。所以最后我想通了。你真的够近了。 addPopOverVC 在其 viewdidload 方法中有一个 (sleep)。导致它冻结。谢谢你 。感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 2015-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
  • 2021-11-22
相关资源
最近更新 更多