【发布时间】:2014-01-30 21:53:52
【问题描述】:
我有一个 UIWebView 用于加载网页。我也有导航按钮,所以你可以在之前加载的页面之间来回切换。没有上一个网页时,有没有办法隐藏导航按钮?
【问题讨论】:
标签: ios objective-c
我有一个 UIWebView 用于加载网页。我也有导航按钮,所以你可以在之前加载的页面之间来回切换。没有上一个网页时,有没有办法隐藏导航按钮?
【问题讨论】:
标签: ios objective-c
在这里查看:Why is UIWebView canGoBack=NO in iOS7?
您可以使用 UIWebView 上的 canGoBack 和 canGoForward 方法在 shouldStartLoadWithRequest 方法中启用/禁用导航按钮:
- (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;
}
【讨论】:
我不知道 UIWebView 内置的任何内容允许这样做,但也许您可以尝试使用变量跟踪页面。
每次发出 url 请求时,都会调用 UIWebView 委托方法,您可以在那里增加变量 (see here)。然后在用户选择后退按钮后递减变量。
希望对您有所帮助。
【讨论】:
例如,您可以将加载的页面保存在 NSArray 中并测试该数组是否为空,然后隐藏按钮。
要知道打开的页面,你可以在你的类中实现 UIWebViewDelegate,并在 -webView:shouldStartLoadWithRequest:navigationType: 回调中保存 url。
【讨论】: