UIWebView后退按钮未启用

时间:2013-07-31 14:14:02

标签: iphone ios objective-c uiwebview uiwebviewdelegate

在我的应用程序中,我有一个UIWebView,其中我需要添加类似浏览器的功能(用户可以goBack,转发或重新加载页面)。为此,我使用了此tutorial.

的代码

在我的代码中,viewDidLoad只有一处更改:

我正在从这样的本地html文件加载数据:

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"File name" ofType:@"html" inDirectory:NO];
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
[self.webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];

而不是:

NSURL* url = [NSURL URLWithString:@"http://iosdeveloperzone.com"];
NSURLRequest* request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];

加载初始html文件后如果我在该页面上进行任何点击而不是后退按钮应该启用,而不是在第二次url点击后启用它,以便我无法返回到原始主页。

请帮助我。

感谢。

1 个答案:

答案 0 :(得分:2)

我得到了答案。这是因为您在没有webView的情况下将数据加载到loadRequest。如果您load data作为字符串webView,那么它将不会有任何url返回或加载旧页面。因此,它不会将您提供的数据存储到webView。为此,您需要像这样提供url

[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"File name" ofType:@"html"] isDirectory:NO]]];