Я использую метод делегата shouldStartLoadWithRequest
, чтобы отлавливать щелчки по ссылкам и обрабатывать конкретные случаи внутри моего приложения, вместо того, чтобы webView
мог перейти к ссылке. В этом коде я пытаюсь вставить новый ViewController
в стек. Сразу после попытки выдвинуть представление я получаю аварийное завершение со следующим сообщением в моей консоли:
WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate:
Мой код выглядит так:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if(decision logic){
MyViewController *vc = [[MyViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
[vc release];
return NO;
}
return YES;
}
Я также пытался использовать модал вместо нажатия нового viewController
. Я получаю тот же результат. Есть ли какие-либо другие сценарии, которые я должен здесь обработать?
** Редактировать: Просто подумал об этом. Представление, которое я пытаюсь выдвинуть, содержит еще один UIWebView
. Должен ли я что-то делать с первым webView
до перехода? Я просто тестировал нажатие другого контроллера представления, который не содержит webView
, и он работал нормально.