1

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

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

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

4

1 回答 1

2

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

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

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

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

    webView_.delegate = self;
}

我希望这可以帮助别人

于 2012-05-24T05:43:04.863 回答