UIwebView委托方法不起作用的原因?

时间:2013-06-25 06:07:50

标签: iphone ios objective-c

当我使用self.myWeview.delegate = self时,我的UIwebView实例无法加载网址。如果我将其设置为nil,则委托方法不会触发,但会加载URL。

这是我的代码:

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

它工作正常,但不调用委托方法。这是我分配委托方法的示例:

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

怎么了?

3 个答案:

答案 0 :(得分:5)

您需要设置:

self.myWeview.delegate = self;

在.h文件中:

@interface YourViewController : UIViewController<UIWebViewDelegate>

除非你没有将委托设置为self委托方法,否则不会被调用。

答案 1 :(得分:2)

有一件事很重要,即使用uiwebview设置它的属性“强”和“非原子”而不是“保留”。

通常我们只在appdelegate类中使用'strong'属性并保留在其他viewcontroller类中。

但是对于viewcontroller类中的uiwebview,你还必须设置属性'strong'。

答案 2 :(得分:0)

您需要在.h文件中实现protocol UIWebViewDelegate 例如:@interface yourClass:inheritedClass<UIWebViewDelegate>并设置委托self.myWeview.delegate = self ;