.h 文件:
@interface MyView: UIViewController <UIWebViewDelegate> {
UIWebView *webView;
}
.m 文件:
-(void)viewDidLoad {
CGRect webFrame = [[UIScreen mainScreen] applicationFrame];
webView= [[UIWebView alloc] initWithFrame:webFrame];
webView.delegate = self;
[self.view addSubview:webView];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]]];
}
-(void)webViewDidStartLoad:(UIWebView *)webView {
NSLog(@"start");
}
-(void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@"finish");
}
-(void)dealloc {
webView.delegate = nil;
webView = nil;
}
在另一个 ViewController 中创建 MyView:
MyView * myView = [[MyView alloc] init];
[self.view addSubView:myView.view];
myView = nil;
myView 设置为 nil,因此它的委托也被销毁。
为了解决这个问题,去掉myView = nil这句话。
谢谢回答我的人。我确实从你的回答中学到了。