UIWebView未显示/加载请求

lui*_*7up 0 iphone delegates request uiwebview

大家,早安,

我有一个RSS阅读器,当单击tableView中的一个feed时打开一个Detail视图控制器.Feed的HTML是从DetailController的自定义setFeed()方法中的items数组加载的:

[self.itemContent loadHTMLString:[NSString stringWithFormat:@"%@"[item objectForKey:@"content"]] baseURL:nil];
Run Code Online (Sandbox Code Playgroud)

HTML加载没有任何问题.如果单击其中的任何链接,则新请求将加载到同一UIWebView中.问题是我想在单击itemContent中的链接时在另一个UIWebView中显示该网页.

所以,我做的是我宣布

itemContent.delegate = self 
Run Code Online (Sandbox Code Playgroud)

并在委托类(self)中定义以下方法:

 -(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {if (navigationType == UIWebViewNavigationTypeLinkClicked) {

    NSLog(@"Opening Outside link!!!\n");

    BrowserViewController *browserViewController = [[[BrowserViewController alloc] init] autorelease];

    //following line doesn't change anything in the result
    //browserViewController.webView.delegate = self;

    [browserViewController.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];

    [self.navigationController pushViewController:browserViewController animated:YES]; 

    return NO;

    }

return YES;
Run Code Online (Sandbox Code Playgroud)

}

此方法肯定会在itemContent中首次加载HTML 与在itemContent webView中对链接执行的点击之间进行识别.NavigationController推送到下一个View但没有加载任何内容.我的意思是我在BrowserViewController的NIB文件中将一个标签放在UIWebView旁边,以确保通过查看标签来加载NIB; 和它的表现.另外,我在NIB文件中定义了一个与UIWebView连接的Outlet webView,所以这应该不是问题.

如果不清楚似乎是什么问题是:当点击链接时,browserViewController会显示标签,但webView不会加载请求.

如果有人可以查看提供的代码,那就太好了.

我祝你生日愉快,L

Mat*_*uch 5

当你NSLog(@"WebView: %@", browserViewController.webView);在loadRequest调用前面放置一个时,你会看到webView是零.

webView目前不可用.它不是在init方法中创建的.

我建议NSURL *url;在BrowserViewController中添加一个属性.而不是 [browserViewController.webView loadRequest:...你可以使用browserViewCOntroller.url = request.URL;.或者您可以直接保存NSURLRequest.

viewDidLoadBrowserViewController 的方法中,您可以告诉webview加载URL或URLRequest.


但我只是在猜测.