2013-06-25 53 views
0

**當我使用self.myWeview.delegate = selfUIWebView無法加載在UIWebViewURL ... 但如果我將它設置爲​​, 然後方法(代表)不能加載但URL是負載 這是代碼:---UIWebView的委託方法不工作

{ 
    self.myWeview.delegate = nil; 
    NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [myWebView loadRequest:request]; 
} 

這工作正常,但無法調用委託方法。

在另一方面

{ 
    self.myWeview.delegate = self; 
    NSURL *url = [NSURL URLWithString:@"http:http://www.google.com"]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [myWebView loadRequest:request]; 
} 

它無法加載URL但調用委託方法

+0

錯誤做工精細:[NSURL URLWithString:@「http://www.google。 COM「];檢查它的第二個代碼 –

+1

從url中刪除額外的http:。 – Girish

+0

你在委託方法中處理什麼? – user1113101

回答

1

去除多餘http

{ 
     self.myWeview.delegate = self; 
     NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
     NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
     [myWebView loadRequest:request]; 
    } 
+0

其實,它錯誤地把額外的http ,但我沒有使用額外的http, ,但它也給出了相同的結果, 我委託方法不工作 – Arjun

1

你所犯的錯誤中調用URL ...

試試這個:

NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
0

組代表自我,那麼你需要實現委託

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    return YES; 
} 

,也不要忘了確認.h文件中的協議,這樣

@interface YourViewController : UIViewController<UIWebViewDelegate> 
4

最後我如果我們不使用這種方法,我得到了我的答案

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

除了所有方法在UIwebViewDelegate

1. -(void)webViewDidFinishLoad:(UIWebView *)webView 
2. -(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 
3. -(void)webViewDidStartLoad:(UIWebView *)webView 
1

使用此代碼在您的viewcontroller.h文件

@interface ViewController : UIViewController<UIWebViewDelegate>