UIWebView не показывает / загружается запрос - PullRequest
0 голосов
/ 11 марта 2011

Доброе утро всем,

У меня есть программа для чтения RSS, которая открывает контроллер представления сведений при щелчке канала в tableView. HTML-код канала загружается из массива элементов, например, в пользовательский метод DetailFontroller setFeed ():

[self.itemContent loadHTMLString:[NSString stringWithFormat:@"%@"[item objectForKey:@"content"]] baseURL:nil];

HTML загружается без проблем. Если щелкнуть любую ссылку внутри, новый запрос загружается в тот же UIWebView. Проблема в том, что я хочу показать веб-страницу в другом UIWebView при нажатии на ссылку внутри itemContent.

Итак, что я сделал, я объявил

itemContent.delegate = self 

и в классе делегата (self) определен следующий метод:

 -(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {if (navigationType == UIWebViewNavigationTypeLinkClicked) {

    NSLog(@"Opening Outside link!!!\n");

    BrowserViewController *browserViewController = [[[BrowserViewController alloc] init] autorelease];

    //following line doesn't change anything in the result
    //browserViewController.webView.delegate = self;

    [browserViewController.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];

    [self.navigationController pushViewController:browserViewController animated:YES]; 

    return NO;

    }

return YES;

}

Этот метод определенно распознает между первой загрузкой HTML в itemContent по кликам, выполненным по ссылкам в itemContent webView. NavigationController переходит к следующему представлению, но в нем ничего не загружено. Я имею в виду, что я поместил одну метку рядом с UIWebView в NIB-файле BrowserViewController, просто чтобы быть уверенным, что NIB загружается при просмотре метки; и его показ. Кроме того, я определил Outlet WebView, связанный с UIWebView в NIB-файле, так что это не должно быть проблемой.

Если неясно, в чем проблема, по-видимому, заключается в следующем: при нажатии на ссылку browserViewController отображается с меткой, но webView не загружает запрос.

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

Желаю тебе хорошего дня, L

1 Ответ

5 голосов
/ 11 марта 2011

Когда вы поставите NSLog(@"WebView: %@", browserViewController.webView); перед вашим вызовом loadRequest, вы увидите, что webView равен nil.

В настоящее время webView недоступен.Он не был создан в методе init.

Я бы предложил добавить свойство NSURL *url; в ваш BrowserViewController.И тогда вместо [browserViewController.webView loadRequest:... вы можете использовать browserViewCOntroller.url = request.URL;.Или вы можете сохранить NSURLRequest напрямую.

А в методе viewDidLoad BrowserViewController вы можете указать веб-представлению загрузить URL или URLRequest.


Но я просто догадываюсь.

...