Невозможно получить HTML-файл для отображения в UIWebView - PullRequest
1 голос
/ 11 марта 2012

Я пытаюсь следовать этому примеру: http://howtomakeiphoneapps.com/uiwebview-tutorial/239/

Я добавил UIWebView в свое представление (используя раскадровку) ... Я добавил IBOutlet в мой файл контроллера .h. (см. изображение по адресу: http://imgur.com/GfUmC). Я добавил делегата в контроллер представления следующим образом:

#import <UIKit/UIKit.h>

@interface slWebViewController : UIViewController <UIWebViewDelegate> {
    IBOutlet UIWebView *slWebView;    
}

@end

Поскольку я использую XCode 4, я не знаю, как установить делегата UIWebView для владельца файла, поэтому я думаю, что это то, что я получаю черный экран. Я что-то упустил, но я не знаю что. На данный момент, я очень, очень признателен за любую помощь, которую я могу получить, чтобы решить эту проблему ...

1 Ответ

1 голос
/ 13 марта 2012

В раскадровке щелкните правой кнопкой мыши (или щелкните, удерживая клавишу Ctrl) и перетащите его из UIWebView к владельцу файла на левой стороне и выберите «делегировать».

В качестве альтернативы выберите веб-представление (как вобраз).Обратите внимание на верхнюю розетку «делегат».Перетащите оттуда к Владельцу файла.

Или вы можете закодировать его.В viewDidLoad введите "self.sIWebView.delegate = self;"

Все это предполагает, что ваш запрос URL правильный.Если вы этого не сделаете, вот пример:

NSURL * url = [NSURL URLWithString:@"http://google.com"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url  
                                                           cachePolicy: NSURLRequestReloadIgnoringCacheData    
                                                       timeoutInterval: 10];
    [sIWebView loadRequest:request];

РЕДАКТИРОВАТЬ: Если вы представляете веб-представление модально, добавьте этот код в контроллер представления, который переходит на ваш веб-просмотр: -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if ([segue.identifier isEqualToString:@"SegueIdentifier"]) { WebViewController *webView = segue.destinationViewController; webView.delegate = self; } } Вам понадобитсядобавить идентификатор к вашему переходу.Просто нажмите на сам переход, перейдите на третью вкладку справа и введите идентификатор.

ОБНОВЛЕНИЕ: Я выделил проблему в файл webViewConroller.m.Все связано правильно.Если я помещаю код loadRequest в viewController в viewDidLoad, я вижу Google.Если я помещаю код loadRequest в «webViewController» и отмечаю ViewContoller как пользовательский класс webViewController, я получаю черный экран.Мне интересно, если нет лучшего способа получить UIWebView для отображения контента?Я действительно не нуждаюсь в контроллере для webView, просто когда происходит переход к этой ячейке, отобразите содержимое UIWebView ... не уверен, что смогу сделать это с XCode ...

...