我正在尝试在网络视图中加载html文件,并且屏幕黑屏。
视图控制器的层次结构为:
视图


  网页检视
  导航项目
  这是选项卡,并且有导航控制器来呈现视图控制器。


码:

- (void)viewDidLoad
{

    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.webView = [[UIWebView alloc] init];
    self.view.backgroundColor = [UIColor colorWithPatternImage:[JLTBackgroundHelper getBackgroundImageForLandingView]];
    self.webView.opaque = NO;
    self.webView.backgroundColor = [UIColor clearColor];

    UIViewController *rootVC = [[UIViewController alloc] init];
    rootVC.title = @"Contact JLT Sport";
    rootVC.view = self.webView;
    self.viewControllers = @[rootVC];

    NSString *fileName;
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        // iPad-specific
        fileName = @"contact_ipad";
    } else {
        // iPhone-specific
        fileName = @"contact";
    }

    NSString *htmlFile = [[NSBundle mainBundle] pathForResource:fileName ofType:@"html" inDirectory:@"Assets/web"];

    NSURL *url = [NSURL fileURLWithPath:htmlFile];
    NSURLRequest *request =[NSURLRequest requestWithURL:url];
    [_webView loadRequest:request];
    _webView.delegate= self;

}


- (BOOL) webView:(UIWebView*)wv shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navType
{
    if (navType == UIWebViewNavigationTypeLinkClicked
        && [request.URL.scheme hasPrefix:@"http"])
    {
        [[UIApplication sharedApplication] openURL:request.URL];
        return NO;
    }
    return YES;
}


不知道出了什么问题。尝试了5个多小时,但没有运气。

最佳答案

代替

self.viewControllers = @[rootVC];


尝试这个

[self presentViewController:rootVC animated:NO completion:nil];


如果在viewDidLoad中显示控制器存在一些问题,请在viewDidAppear中执行。首先,我不清楚您为什么要在控制器的viewDidLoad内创建另一个视图控制器,并向其中添加子视图。

关于ios - 在Web View iOS中加载html文件时屏幕黑屏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21524198/

10-10 21:03