UIWebView委托方法不起作用

时间:2013-06-25 05:46:35

标签: iphone objective-c uiwebview

**当我使用self.myWeview.delegate = self时, UIWebView无法在URL中加载UIWebView ... 但如果我将它设置为self.myWeview.delegate = nil, 然后方法(委托)无法加载,但URL是加载 这是代码:---

{
   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但会调用委托方法

5 个答案:

答案 0 :(得分: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 :(得分:1)

删除额外的http

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

答案 2 :(得分:1)

你在调用网址时犯了错误......

试试这个:

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

答案 3 :(得分:1)

在viewcontroller.h文件中使用此代码

@interface ViewController : UIViewController<UIWebViewDelegate>

答案 4 :(得分:0)

将委托设置为self,然后您需要实现委托

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

并且也不要忘记在.h文件中确认这样的协议

@interface YourViewController : UIViewController<UIWebViewDelegate>