У меня есть представление с панелью навигации в моем приложении для iphone. На панели навигации есть кнопка «Назад», чтобы вернуться к предыдущему виду. В представлении находится веб-просмотр. Если веб-представление загружается, когда пользователь нажимает кнопку «Назад» на панели навигации, приложение аварийно завершает работу с сообщением об ошибке:
[WebViewController respondsToSelector:]: message sent to deallocated instance
Я предполагаю, что я выпускаю некоторые вещи, когда представление выгружается. Я считаю, что мой метод viewWillDisapear позаботится о том, чтобы остановить загрузку веб-просмотра... Но все же, когда я нажимаю назад, когда представление не полностью загружено, оно падает.
Кажется, это происходит, когда я позволяю представлению завершить загрузку примерно в 20% случаев - и только если я очень быстро нажимаю кнопку «Назад» после завершения загрузки страницы.
Вот код, который, как я полагаю, работает во время этих махинаций....:
- (void)viewDidLoad {
[super viewDidLoad];
webView.scalesPageToFit = YES;
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: url]]];
[addressBar setText:url];
}
а затем, когда веб-просмотр загружается:
- (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