2011-04-24 55 views
3

我打算寫一個包含UIWebView的應用程序。所以首先我想通過簡單地加載一個URL來嘗試。UIWebView加載但不顯示網站(XCode 4,iOS SDK 4.3)

  • 創造了一個UIWebView在Interface Builder
  • 掛在代碼

    @property(nonatomic,retain) IBOutlet UIWebView *webView;

viewDidLoad中:

- (void)viewDidLoad { 
[super viewDidLoad]; 
if(!webView) 
{ 
    webView = [[UIWebView alloc]init]; 
} 

webView.delegate = self; 

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

也是我實現了didFailLoadWithError和webV iewDidFinishLoad委託方法。 調用webViewDidFinishLoad並指示HTML已加載。

問題是:即使調用了webViewDidFinishLoad,UIWebView也不會顯示該網站。它只顯示白色。當觸摸並拖動UIWebView但不顯示內容時,會顯示右側和底部的滾動條。沒有找到任何東西。似乎很奇怪..

編輯 該截圖顯示了廈門國際銀行的連接:

Connections

回答

2

我明白了。我以下列方式使用合成:

@synthesize webView = _webView; 

所以這是需要調用的UIWebView以下列方式:

[self.webView loadRequest:...]; 

這個新的命名規則,其這就是爲什麼我不習慣自己的必要性

5

如果您在Interface Builder正確迷上了一切,不應該需要下面幾行:

if(!webView) 
{ 
    webView = [[UIWebView alloc]init]; 
} 

webView.delegate = self; 

嘗試刪除它們,看看會發生什麼。另外,在webView:didFailLoadWithError:回調中加入NSLog(...)並查看是否輸出。

+0

謝謝。這樣做,但不工作。我也認爲這不是必要的,但我想嘗試一切。當調試viewDidLoad時,我看到webView被分配了0x0。這可能是錯誤的。但是,在將loadRequest發送給未分配的實例時,它不應該崩潰嗎? (它不會崩潰) – cmart 2011-04-24 14:04:23

+0

也當我沒有分配和初始化UIWebView的代碼中,委託方法不會被調用..這意味着它真的不會被分配和插入,因爲它應該是? – cmart 2011-04-24 14:08:08

+0

我更新了我的問題,在底部的屏幕截圖 – cmart 2011-04-24 14:12:16

0

你是否檢查過文件所有者連接到你聲明的webView?

此外,webViewDidFinishLoad並不意味着HTML被加載! 無論內容加載成功,該方法都會被調用。

+0

謝謝你,那就是我的意思。在這種情況下,它是HTML;)是的,連接似乎很好 – cmart 2011-04-24 14:09:17

+0

我更新了我的問題,底部截圖 – cmart 2011-04-24 14:12:07

+0

我想,也許,你可以檢查applicationdidFinishLaunchingWithOptions :,視圖是否被添加到窗口? – rsheng 2011-04-24 14:28:18