Как отменить UIWebView? - PullRequest
       7

Как отменить UIWebView?

7 голосов
/ 18 августа 2011

Я модально представляю UIViewController с UIWebView в качестве вида. Как я могу отклонить UIWebView, когда пользователь нажимает кнопку отмены?

У меня есть идея добавить ссылку для отмены на http://cancel, а затем проверить

- (void)webViewDidStartLoad:(UIWebView *)webView

Если webView.request.URL.host isEqualToString:@"cancel", то отклонить контроллер представления.

Должен ли хост иметь точку в нем, например, "cancel.com"?

Ответы [ 2 ]

8 голосов
/ 18 августа 2011

Вы на правильном пути, но ваш подход слегка отклонен.Вам не нужно или вы хотите, чтобы это был URL-адрес HTTP.Сделайте ваш URL cancel:.

<a href="cancel:">Thing to click</a>

. Затем внедрите webView:shouldStartLoadWithRequest:navigationType: в своем делегате веб-просмотра.Примерно так (не проверено):

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if ([request.URL.scheme isEqualToString:@"cancel"]) {
        [self dismissModalViewControllerAnimated:YES];
        return NO;
    }
    return YES;
}
6 голосов
/ 18 августа 2011

Не совсем понятно, хотите ли вы прекратить загрузку в веб-представлении или просто отмените контроллер модального представления, который его содержит.

Чтобы прекратить загрузку:

[webView stopLoading];

Чтобы закрытьконтроллер представления:

[self dismissModalViewControllerAnimated:YES];

Не забудьте установить значение delegate веб-представления в ноль, прежде чем его отпустить.

...