当我使用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];
怎么了?
答案 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
;