2014-01-11 108 views
1

我有一个用于加载网页的UIWebView。我也有导航按钮,所以你可以在前面加载的页面之间前后移动。没有以前的网页时,有没有办法隐藏导航按钮?如何隐藏uiwebview导航按钮

回答

1

入住这里:Why is UIWebView canGoBack=NO in iOS7?

您可以启用/在shouldStartLoadWithRequestcanGoBackcanGoForward方法上的UIWebView禁用您的导航按钮:

- (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; 
} 
+0

这将实际工作,唯一的事情是如何我有我向前和向后按钮来控制UIWebView不是通过我的实现文件,我通过右键单击并从webview拖动到按钮然后选择操作。我应该用什么来将它们实现到我的.m文件中? – user3180303

+0

我不确定我明白你的意思。你可以发布屏幕截图吗? 您需要将您的按钮从.xib文件链接到您的类,并在.h文件中添加IBOutlet,以便您可以在.m文件中访问它们。 – Damien

+0

好的左边是我的.h,右边是.m,http://i.imgur.com/gR3oqwy.png和我已经连接回去和gofoward到webview – user3180303

0

我不知道什么内置到UIWebView,允许这个,但也许你可以尝试跟踪一个变量的网页。

每次发出url请求时,都会调用UIWebView委托方法,您可以在那里递增变量(see here)。然后,一旦用户选择了后退按钮,就减少该变量。

希望有所帮助。

0

例如,您可以将加载的页面保存在NSArray中,并测试该数组是否为空,您可以隐藏该按钮。

要知道打开的页面,请在您的类中实现UIWebViewDelegate,并在 - webView:shouldStartLoadWithRequest:navigationType:回调中保存url。