【问题标题】:UIWebView delegate not working the second timeUIWebView 委托第二次不工作
【发布时间】:2012-05-23 08:58:20
【问题描述】:

我有一个 rss 提要,它返回一个包含标题、短文本和全尺寸文本的 json。短文本的标题和部分显示在 TableView 中。

我有 3 个控制器和 3 个视图。 View 1 显示一个 TableView 包含来自 json 的文章(标题和短文本),每篇文章都有一个“阅读更多”按钮,在按钮的 IBAction 中,我将 viewcontroller(2) 推入导航控制器,控制器有一个 UIWebView(第二个视图),它加载一个 html 字符串。该字符串包含链接,当用户点击链接时,我想呈现一个带有另一个 WebView(3) 的模态视图控制器,这次使用请求(请记住,两个 WebViews 都有 单独的控制器和 nib)。 代表在他们两个上都正确设置,我从代码和使用可视化工具都试过了。在第一个 WebView 的委托方法 shouldStartLoadWithRequest 中,我检查请求参数是否包含“http”或“www”,因为只有这样我才想调用第二个 WebView。第二个 WebView 第一次运行良好,视图以模态方式呈现,但是当我关闭它并点击相同的链接或另一个时,shouldStartLoadWithRequest 委托方法不会被调用,但链接会加载到相同的 WebView(第一个)。

我用谷歌搜索了这个,但没有找到与我类似的案例或解决方案。我对ios应用开发没有那么多经验,但是一个同事很好,我们没有设法找到解决这个问题的方法。我们将代码拆开分析,但没有找到这个问题的潜在根源,而且他有一个单独的项目,他也有同样的问题,只是他只使用了一个控制器和一个WebView(我们的控制器和笔尖独立创建)。我们对研究和代码检查非常彻底

【问题讨论】:

  • 能否提供代码。这将有助于我们更好地理解问题

标签: iphone ipad webview uiwebviewdelegate


【解决方案1】:

看来解决方法很简单。第一个 WebView 显然失去了与其委托的连接,因此,在第二个 WebView 控制器中添加

- (void)viewWillDisappear:(BOOL)animated {
    [self.parentViewController viewWillAppear:YES];
}

并在第一个 WebView 的第一个控制器中:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    webView_.delegate = self;
}

我希望这对某人有帮助

【讨论】:

    猜你喜欢
    • 2014-08-26
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多