【发布时间】:2012-01-21 13:05:08
【问题描述】:
我在我的应用程序中使用了UIWebView,并且我覆盖了shouldStartLoadWithRequest 消息以检测正在点击的链接类型。如果它是“特殊”链接,我将UIViewController 推入堆栈并从此方法返回 NO。这在大多数情况下都很有效。
然而,有时我点击一个链接,我的shouldStartLoadWithRequest 永远不会被调用。现在奇怪的是,包含 UIWebView 的 UIViewController 位于 UITabBarController 中,当我单击另一个选项卡时,UIWebView 最终调用了它的 shouldStartLoadWithRequest。在我单击另一个选项卡之前,我不会接到 shouldStartLoadWithRequest 的电话。另一个有趣的地方是,当我第一次点击链接时,失败的情况永远不会发生。它总是在后续时间。
有人看过吗?对我来说,这听起来像是 UIWebView 有时没有收到 touchEnded 事件,并且通过切换选项卡,底层框架会强制触发 touchEnded 事件,这反过来会导致我的 shouldStartLoadWithRequest 被调用。
【问题讨论】:
标签: iphone ios uiwebview uiwebviewdelegate