【发布时间】:2015-05-27 13:42:32
【问题描述】:
我有两个ViewControllers。我们称它们为 no1 和 no2。在 no2 中,我有 PopoverViewController 和一些选项和 NSTimer 的实例。如果在弹出窗口中没有单击任何内容,则计时器函数在弹出窗口出现 3 秒后调用 popToViewController,这会将用户返回到 no1 ViewController。问题是当这个函数被触发时,屏幕变成了no1,但是应用程序崩溃并且没有下面的错误消息。
PopoverViewController 没有委托,它被注册为第二个 VC 的属性:
@property (nonatomic)UIPopoverController *optionsPopover;
有人知道为什么没有可用的崩溃报告吗?如果没有提到弹出框为什么它会崩溃?
viewWillDisappear 中的实现如下所示:
if([_optionsPopover isPopoverVisible]){
[_optionsPopover dismissPopoverAnimated:NO];
_optionsPopover = nil;
}
我尝试强制 UI 在主线程上更新(代码如下),但结果是一样的。崩溃仍然存在。
dispatch_async(dispatch_get_main_queue(), ^{
if([_optionsPopover isPopoverVisible]){
[_optionsPopover dismissPopoverAnimated:NO];
_optionsPopover = nil;
}
});
【问题讨论】:
标签: ios objective-c uiviewcontroller uipopovercontroller