iPhone - webViewDidFinishLoad 未调用

标签 iphone cocoa-touch uiwebview properties interface-builder

我有一个简单的 IB View ,其中仅包含一个 UIWebView 和一个 UIButton。
webView 被保留,连接,而不是 nil,委托(delegate)属性 os 也被连接, Controller 是 UIWebViewDelegate 兼容并在 .h.
中设置 在 ViewDidLoad 中,我使用 [self.webView loadHTMLString:htmlContent baseURL:nil];

内容已加载,但 webViewDidFinishLoad 从未触发,didFailLoadWithErrorwebViewDidStartLoad 均未触发。

我如何知道我的内容何时完成加载,因为它需要很短的时间,但仍然需要加载时间(并且我需要在显示期间执行一些操作,例如不显示按钮)?

@interface MyController : UIViewController <UIWebViewDelegate> {
    UIWebView* webView;
}

@property (nonatomic, retain) IBOutlet UIWebView* webView;

@end


@implementation MyController

@synthesize webView;

- (void)viewDidLoad
{
[super viewDidLoad];

constructing the htmlString

id a = self.webView.delegate; // for debug
[self.webView loadHTMLString:htmlContent baseURL:nil];
}

@end

编辑: 我已经删除了整个 XIB 并从 scrathc 构建了它:不再有问题。 IB 有时很糟糕。

最佳答案

您需要在类中实现UIWebViewDelegate协议(protocol)并设置self.webView = self的委托(delegate)属性。您需要为该类实现非可选委托(delegate)方法,以及 webViewDidFinishLoaddidFailLoadWithErrorwebViewDidStartLoad 方法。

关于iPhone - webViewDidFinishLoad 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7862962/

相关文章:

javascript - 使用 UIWebview 中的 JSContext 会使我的应用程序被拒绝吗?

iphone - 手势识别器由于某种原因无法在 iPhone 上工作

iphone - Tabbar 应用程序中的 PopViewController

iphone - 获取经度和纬度值

iphone - 通过单击键盘按钮关闭屏幕键盘的事件

iphone - 使用 Cocoa-Touch 在 iOS 中将 html 文件转换为 PDF 文档

ios - UIWebView - 加载内容前的白色背景

ios - UIWebView 没有打开安全的 url

iphone-sqlite 管理器

iPhone:用户以类似于 HTML 选择的方式选择选项的最佳方式?