我在运行iOS 9的iPod Touch上测试我的应用程序(在iOS 8.4上,它正在用于其他功能:FaceTime,复制到联系人等)。我有一个带有电话号码检测的textview,我收到以下错误:
警告:尝试出现< _UIRotatingAlertController:0x16250e00>在谁的视图不在窗口层次结构!
断言失败 - [UITextView startInteractionWithLinkAtPoint:],/ BuildRoot / Library / Cache / com.apple.xbs / Source / UIKit / UIKit-3505.16 / UITextView_LinkInteraction.m:377
对此有任何解决方法吗?
答案 0 :(得分:2)
不是一个完美的解决方案,但非常简单,可能会帮助绝望的开发人员:
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange {
[[UIApplication sharedApplication] openURL:URL];
return NO;
}
长按会丢失复制,打开网址,取消弹出框,但您应该至少能够像以前一样打开网址。在iOS 9中,这仍然会在您的应用程序中打开标准URL的浏览器窗口(这很不错)。
这似乎是一个Apple bug(已发布到雷达)。
我们在尝试在模态视图中打开链接时看到了非常类似的错误,因为Apple正在尝试显示新的模态警报视图。在模态视图之外,数据检测在iOS 9中运行得很好。
答案 1 :(得分:1)
这看起来非常类似于我们最近为PSPDFKit修复的错误,当rootViewController
已经呈现另一个控制器时,展示工作表不起作用。 (您的rootViewController
可能未设置吗?)
您可以在此处阅读源代码。这可能有助于您找出问题所在:
https://gist.github.com/steipete/b00fc02aa9f1c66c11d0f996b1ba1265
请尽快rdar://26295020这样就可以及时解决iOS 10的问题。(该漏洞自iOS 8开始存在,并首次在iOS 8b5上报告。)