Может ли UIWebView вызывать события для содержащего контроллера представления? - PullRequest
2 голосов
/ 28 августа 2010

У меня есть UIWebController, встроенный в UIViewController.
Я пишу HTML-код для UIViewcontroller, чтобы иметь полный контроль над страницей HTML.

Когда пользователь нажимает кнопку на странице HTMLможет ли содержащийся UIViewController быть уведомлен об этом?

Может ли UIWebView отправлять / вызывать событие в UIViewControler?

1 Ответ

2 голосов
/ 01 сентября 2010

Вам необходимо реализовать webView: shouldStartLoadRequest: navigationType: метод делегата для веб-представления ( Apple Docs) .

Вот краткий пример:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSURL *url = [request URL];
    if ([[url scheme] isEqualToString:@"someLinkURL"]) {

        // Display alert
        UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"Hello" message:@"I'm a message!" delegate:self cancelButtonTitle:@"Okay!" otherButtonTitles:nil];
        [myAlert show];
        [myAlert release];
        return NO;
    }
    return YES;
}

Ваш VC должен быть webViewDelegate, чтобы этот метод работал.

Если вы хотите обрабатывать все клики вручную (т.е. не переходить на другие страницы в веб-представлении), верните NO в этой последней строке.

...