在Web浏览器中禁用后退/前进按钮

时间:2011-04-19 18:56:09

标签: iphone objective-c cocoa-touch

在我的应用中,我有UIWebView。在它下面,我有一个带有后退和前进按钮的工具栏来控制浏览器。如何在用户位于初始页面时禁用后退按钮,并在用户位于最新页面时禁用前进按钮?查看UIWebViewDelegate协议,我没有看到任何回调告诉我用户在浏览器历史记录中的位置。

它应该看起来像Safari的工具栏:

enter image description here

编辑:我想出了检测部分,但我无法找出禁用部分。我的按钮始终保持完全不透明度,即使NSLog打印出0canGoBack canGoForward,也可以点按。

·H

@interface VeetleViewController : UIViewController <UIWebViewDelegate> {
    UIWebView* webView;
    UIBarButtonItem* buttonBack;
    UIBarButtonItem* buttonForward;
    UIActivityIndicatorView* activityIndicator;
}

- (void)activityIndicatorStop;

@property (nonatomic, retain) IBOutlet UIWebView* webView;
@property (nonatomic, retain) IBOutlet UIBarButtonItem* buttonBack;
@property (nonatomic, retain) IBOutlet UIBarButtonItem* buttonForward;
@property (nonatomic, retain) UIActivityIndicatorView* activityIndicator;

@end

的.m

- (void)webViewDidStartLoad:(UIWebView *)webView
{
    NSLog(@"canGoBack:%d canGoForward:%d", self.webView.canGoBack, self.webView.canGoForward); 

    [self.activityIndicator startAnimating];

    if (self.webView.canGoBack) {
        self.buttonBack.enabled = YES;
    } else {
        self.buttonBack.enabled = NO;
    }

    if (self.webView.canGoForward) {
        self.buttonForward.enabled = YES;
    } else {
        self.buttonForward.enabled = NO;
    }
}

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

只需在Web视图的一个委托方法中实现:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [backbutton setEnabled:[webView canGoBack]];
    [fwdbutton setEnabled:[webView canGoForward]];
}