【问题标题】:UIWebView loading but not displaying website (XCode 4, iOS SDK 4.3)UIWebView 加载但不显示网站 (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

【问题讨论】:

    标签: iphone ios uiwebview


    【解决方案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:,视图是否添加到窗口?
      猜你喜欢
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多