2011-03-11 76 views
0

大家早上好,UIWebView中沒有顯示/加載請求

我有一個RSS閱讀器THA打開一個詳細視圖控制器被點擊的tableView飼料時。進料的HTML從項目陣列像這樣裝入DetailController的自定義setFeed()方法:

[self.itemContent loadHTMLString:[NSString stringWithFormat:@"%@"[item objectForKey:@"content"]] baseURL:nil]; 

HTML得到沒有任何問題加載。如果點擊任何鏈接,新的請求將被加載到相同的UIWebView中。問題是我想在單擊itemContent內的鏈接時在另一個UIWebView中顯示網頁。

所以,我所做的是我宣佈

itemContent.delegate = 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; 

}

這種方法絕對裝載之間識別HTML首次在itemContent從鏈接上執行的點擊數itemContent webView。 NavigationController將推入下一個視圖,但沒有加載它。我的意思是我已經在BrowserViewController的NIB文件中的UIWebView旁邊放置了一個標籤,以確保NIB通過查看標籤來加載;和它的展示。另外,我在NIB文件中定義了一個與UIWebView連接的Outlet webView,所以這不應該成爲問題。

如果它不清楚什麼似乎是問題是:單擊鏈接時,browserViewController與標籤呈現,但webView不加載請求。

請,如果有人可以檢查提供的代碼將是偉大的。

我祝你有非常愉快的一天, 大號

+0

這是你的實際碼嗎?它甚至不可編譯,它包含「[[BrowserViewController alloc] init]];」 (不匹配的括號) - 你有簡化和切碎的東西嗎?請顯示實際的代碼。 – occulus 2011-03-11 10:21:58

+0

如果你設置了browserViewController.webView的委託,實際調用了哪些方法?被稱爲失敗方法?不要忽視你的委託方法!他們試圖告訴你有用的東西! – occulus 2011-03-11 10:23:43

+0

您能向我們展示如何在Web視圖中加載HTML嗎? – Jilouc 2011-03-11 10:23:59

回答

5

當你把一個NSLog(@"WebView: %@", browserViewController.webView);在你的的loadRequest前叫你將看到Webview是零。

此時webView不可用。它不是在init方法中創建的。

我建議將NSURL *url;屬性添加到您的BrowserViewController。然後,您可以使用browserViewCOntroller.url = request.URL;而不是[browserViewController.webView loadRequest:...。或者你可以直接保存NSURLRequest。

而在BrowserViewController的viewDidLoad方法中,您可以告訴webview加載URL或URLRequest。


但我只是猜測。

+1

謝謝...如果我從Detail控制器['browserViewController.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@「 http://www.google.com「]]];'它沒有加載,但如果我在我的BrowserViewController中定義了一個NSURL * url,則在初始化之前將url的值傳遞給它,然後從browseViewController中加載* url,那麼它正在工作!再次感謝所有人 – luigi7up 2011-03-11 11:56:23

+0

這個答案適合我。 – felixwcf 2017-05-02 02:07:59