我正在尝试在网络视图中加载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/