-4

当我使用 时self.myWeview.delegate = self,我的UIwebView实例无法加载 URL。如果我将其设置为,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]; 

怎么了?

4

3 回答 3

5

你需要设置:

self.myWeview.delegate = self;

在 .h 文件中:

@interface YourViewController : UIViewController<UIWebViewDelegate>

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

于 2013-06-25T06:21:00.763 回答
2

重要的一件事是,无论您在哪里使用 uiwebview,都将其属性设置为“强”和“非原子”,而不是“保留”。

通常我们只在 appdelegate 类中使用“强”属性,并在其他视图控制器类中保留。

但是对于 viewcontroller 类中的 uiwebview,您还必须设置属性“强”。

于 2013-06-25T07:07:32.033 回答
0

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

于 2013-06-25T06:21:27.157 回答