我有一个用于加载网页的UIWebView。我还有导航按钮,因此您可以在之前加载的页面之间前后移动。有没有办法在没有以前的网页时隐藏导航按钮?
答案 0 :(得分:1)
点击此处:Why is UIWebView canGoBack=NO in iOS7?
您可以使用UIWebView上的shouldStartLoadWithRequest
和canGoBack
方法在canGoForward
方法中启用/禁用导航按钮:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType
{
if ([webView canGoBack])
{
[_browserBackItem setEnabled:YES];
}
else
{
[_browserBackItem setEnabled:NO];
}
if ([webView canGoForward])
{
[_browserForwardItem setEnabled:YES];
}
else
{
[_browserForwardItem setEnabled:NO];
}
return YES;
}
答案 1 :(得分:0)
我不知道UIWebView中内置的任何内容允许这样做,但也许您可以尝试使用变量跟踪页面。
每次发出url请求时,都会调用UIWebView委托方法,你可以在那里增加变量(see here)。然后在用户选择后退按钮后递减变量。
希望有所帮助。
答案 2 :(得分:0)
例如,您可以将加载的页面保存在NSArray中,并测试该数组是否为空,您可以隐藏按钮。
要知道打开的页面,您在班级中实现UIWebViewDelegate,并在 - webView:shouldStartLoadWithRequest:navigationType:回调中保存网址。