2014-07-04 43 views
0

我有一個帶uiwebvew的ViewController。這被稱爲顯示webcontents。在同一個ViewController的另一個實例中加載url鏈接

我的問題是,如果webcontent有鏈接,我想在同一個ViewController的另一個實例中顯示該鏈接頁面。

到目前爲止我無法這樣做。我想我在這裏錯過了一些東西。

任何人都可以在這裏指出我的問題。

在此先感謝。

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

    if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
     PageDetailsViewController *pdvc = [self.storyboard instantiateViewControllerWithIdentifier:@"PageDetails"]; 
     NSURL *websiteUrl = [NSURL URLWithString:@"http://www.google.com"]; 
     NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteUrl]; 
     [pdvc.webview loadRequest:urlRequest]; 
     [self.navigationController pushViewController:pdvc animated:YES]; 
     return NO; 

    } 
     return YES; 

當我嘗試在相同的viewcontroller加載,它很好加載。所以,我的猜測是,我的webview委託或導航控制器可能有問題。

任何想法??

+0

你正在推相同的viewcontroller? –

+1

當你做'PageDetailsViewController * pdvc = [self.storyboard instantiateViewControllerWithIdentifier:@「PageDetails」];'這,你正在創建一個新的對象實例。你不推動「相同」的視圖控制器。這與操作系統不一樣,因爲它是內存中的一個不同的對象。你有什麼是同一個對象的兩個不同的實例。我會在這裏參考@ rdelmar的建議。給這個View Controller添加一個'NSURL *'屬性,讓它處理在它的UIWebView中加載這個url。 – dezinezync

+0

好的,謝謝大家......我現在要爲此使用不同的視圖控制器。 – user3804063

回答

0

pdvc.webview將爲零,因爲它的視圖在您嘗試引用它時尚未加載。您應該將URL傳遞給pdvc,並讓該控制器在viewDidLoad中加載其Web視圖。

+0

但我推動相同的viewcontroller,除了交付viewDidload/viewwillappear旁邊有什麼辦法嗎? – user3804063

+0

@ user3804063爲什麼你推動相同的視圖控制器?再次使用相同的webview和loadrequest。 –

+0

@ user3804063,我相信會有辦法來處理它,但爲什麼不使用不同的視圖控制器?如果你需要共同的代碼,你可以讓兩個控制器都從一個共同的基礎控制器繼承。 – rdelmar

相關問題