Какой UIWebView имеет запрос на загрузку?

Так что в моем классе есть два разных объекта UIWebView (один - меню, другой - для контента). Давайте назовем их UIWebView "A" и UIWebView "B"

В моем mustStartLoadWithRequest как определить, из какого UIWebView была вызвана ссылка? Было ли это "А" или "Б"? Я подумал, что могу просто проверить свойство типа "title" или "name", поэтому я просмотрел документацию, но не повезло.

Я ищу что-то вроде этого...

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"WebView is... %@",[webView title]);
}

Если я регистрирую весь webView, я получаю большой хеш, но не ссылаюсь на оригинальное имя, которое я дал в своем IBOutlet. Надеюсь, это имеет смысл.

Кроме того, кто-то может указать мне, как я могу найти такие свойства в документации, потому что это кажется довольно простой вещью, которую я пытаюсь сделать.

1 ответ

Решение

Вы можете просто проверить, если webView параметр, переданный этому методу, равен объявленным вами ivars.

Например, если ивари для IBOutlets названы webViewA а также webViewB:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (webView == webViewA)
        NSLog(@"webview A wants to load %@", request);
    else
        if (webView == webViewB)
            NSLog(@"webview B wants to load %@", request);
        else
            NSLog(@"some other webview wants to load %@", request);

    return YES;
}

Кроме того, вы также можете установить tag свойство каждого веб-представления либо в IB, либо в коде с некоторыми ненулевыми значениями (скажем, 10 и 20) и проверьте значение webView.tag в методе делегата.

Другие вопросы по тегам