【问题标题】:Crash/SIGABRT when I try to present a UIPopoverController当我尝试呈现 UIPopoverController 时崩溃/SIGABRT
【发布时间】:2011-11-11 22:00:59
【问题描述】:

嗨,我对我在这里做错的事情束手无策。我正在使用 ios5,如果我不调用 presentPopoverFromBarButtonItem,没有任何崩溃。有没有人经历过类似的事情?我查了苹果开发者论坛,谷歌,堆栈溢出,什么都找不到。

在 gdb 上运行 bt 也没有显示任何提示。

UIViewController *viewTwo;
viewTwo = [[ViewTwo alloc] initWithNibName:@"ViewTwo" bundle:nil];

UIPopoverController *popover;
popover = [[UIPopoverController alloc] initWithContentViewController:viewTwo];  

[popover presentPopoverFromRect:[theButton bounds] 
                         inView:theButton 
       permittedArrowDirections:UIPopoverArrowDirectionLeft 
                       animated:NO];

【问题讨论】:

  • 取消变量是实际的条形按钮项吗? (即不是零)
  • 我将代码更改为一个更易于阅读的示例,以防其他人遇到同样的问题。

标签: ios crash ios5 uipopovercontroller xcode4.2


【解决方案1】:

我假设您正在使用 ARC,因为我遇到了同样的问题。你必须坚持你创建的弹出窗口,否则它的保留计数会减少,当你到达方法范围的末尾时它会被释放。

因此,创建一个属性并合成它,直到您不再需要它并将其从屏幕上移除,在它被移除后将其设置为 nil。

【讨论】:

  • 我实际上是自己搞定的,然后回来回应说我已经弄明白了。如果你没有使用 ARC(或者只是 X-Code 4.2 之前的版本),你不必坚持它就是让我失望的原因。
  • 非常感谢。你不知道这个答案对我有多大帮助。我永远不会意识到这一点
  • 太棒了!非常感谢...我和@Andrew 有同样的评论。它真的帮了我很多。非常感谢。
  • @scott Sherwood 模态视图控制器也会发生这种情况吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
相关资源
最近更新 更多