UIWebView 加载但不显示网站 (XCode 4, iOS SDK 4.3)
Posted
技术标签:
【中文标题】UIWebView 加载但不显示网站 (XCode 4, iOS SDK 4.3)【英文标题】:UIWebView loading but not displaying website (XCode 4, iOS SDK 4.3) 【发布时间】:2011-04-24 13:39:03 【问题描述】:我要编写一个包含 UIWebView 的应用程序。所以首先我想通过简单地加载一个 URL 来尝试一下。
在 Interface Builder 中创建了 UIWebView与代码挂钩
@property(nonatomic,retain) IBOutlet UIWebView *webView;
viewDidLoad:
- (void)viewDidLoad
[super viewDidLoad];
if(!webView)
webView = [[UIWebView alloc]init];
webView.delegate = self;
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];
我还实现了 didFailLoadWithError 和 webViewDidFinishLoad 委托方法。 调用 webViewDidFinishLoad 并指示 html 已加载。
问题是:即使调用了 webViewDidFinishLoad,UIWebView 也不显示网站。它只显示白色。当 UIWebView 被触摸和拖动但内容不可见时,会显示右侧和底部的滚动条。无处可寻。看起来很奇怪..
编辑 此屏幕截图显示了 xib 的连接:
Connections
【问题讨论】:
【参考方案1】:如果您在 Interface Builder 中正确连接了所有内容,则不需要以下行:
if(!webView)
webView = [[UIWebView alloc]init];
webView.delegate = self;
尝试删除它们,看看会发生什么。另外,在webView:didFailLoadWithError:
回调中放一个NSLog(...)
,看看有没有输出。
【讨论】:
谢谢。做到了,但没有工作。我也认为这没有必要,但我想尝试一切。在调试 viewDidLoad 时,我看到 webView 分配了 0x0。那可能是错误。但是当将 loadRequest 发送到未分配的实例时它不应该崩溃吗? (它不会崩溃) 另外,当我不在代码中分配和初始化 UIWebView 时,不会调用委托方法。这意味着它真的没有按应有的方式分配和初始化? 这正是我的问题。我的 viewDidLoad 方法中有这些行。谢谢!【参考方案2】:我明白了..我通过以下方式使用合成:
@synthesize webView = _webView;
所以需要通过如下方式调用 UIWebView:
[self.webView loadRequest:...];
这个命名约定的新手,这就是为什么我不习惯自我的必要性
【讨论】:
【参考方案3】:您是否检查了文件所有者连接到您声明的 web 视图?
此外,webViewDidFinishLoad 并不意味着 HTML 已加载! 无论内容加载成功,都会调用该方法。
【讨论】:
谢谢你,这就是我的意思。在这种情况下它是 HTML ;) 是的,连接似乎很好 我猜,也许,你可以检查applicationdidFinishLaunchingWithOptions:,视图是否添加到窗口?以上是关于UIWebView 加载但不显示网站 (XCode 4, iOS SDK 4.3)的主要内容,如果未能解决你的问题,请参考以下文章