【发布时间】:2011-08-17 21:56:52
【问题描述】:
我的 iPhone 应用中有一个带有导航栏的视图。导航栏上有一个后退按钮可以转到上一个视图。在视图中是一个 web 视图。如果在用户按下导航栏上的后退按钮时正在加载 webview,应用程序会崩溃并显示错误消息:
[WebViewController respondsToSelector:]: message sent to deallocated instance
我假设我在视图卸载时释放了一些东西。我相信我的 viewWillDisapear 方法负责阻止 webview 加载...但是,当我在视图未完全加载时按回时,它会崩溃。
当我让视图完成加载大约 20% 的时间时,似乎会发生这种情况 - 并且只有在页面完成加载后我真的很快按下后退按钮时才会发生。
这是我认为在这个 shinanigans 期间运行的代码......:
- (void)viewDidLoad {
[super viewDidLoad];
webView.scalesPageToFit = YES;
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: url]]];
[addressBar setText:url];
}
然后当 webview 加载时:
- (void)webViewDidStartLoad:(UIWebView *)webView {
if (first) {
//mtns is a uiimageview
mtns.alpha = .8;
first = NO;
}
[activityIndicator startAnimating];
}
经过一个建议,我添加了这个方法:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.webView stopLoading];
self.webView.delegate = nil;
}
我不知道它为什么会崩溃,所以我有点不知所措
谢谢,
R
【问题讨论】:
标签: iphone uiwebview loading back