我在iOS 5中发现了一个错误。
当您使用UIWebView并访问某些站点时,您将创建历史记录链接,就像其他任何浏览器一样。
如果您想使用导航栏,可以使用goBack
和goForward
函数
在iOS 4.3及更低版本中,当您调用此函数时,程序将调用委托函数
webView:shouldStartLoadWithRequest:navigationType:
但是在iOS 5.0中,这可能发生或不会发生。如果站点在缓存中,则不会调用此函数。我看到这种情况仅发生在1级(在goBack中单击1次或在goFoward中单击1次),在第二次单击中将其传递给函数。
他们为什么要改变它???即使它在缓存中,程序也必须要问我。现在如何解决这个问题:我正在尝试使用浏览器历史记录进行堆栈,并检查URL。但是我有问题;(
有没有其他办法?
有糖味吗?
最佳答案
这不是错误,如果设备上有足够的可用RAM,那么它将把某些页面保留在内存中,因此当您返回时不会再次“加载”它们。
您应该在自己的控制器上创建自己的goBack:
和goForward:
操作,并将goBack / goForward按钮链接到它们:
- (IBAction)goBack:(id)sender
{
[self doStuff];
[self.webView goBack:sender];
}