iPhone - 如何让自定义浏览器能够检测是否需要启用/禁用后退/前进按钮

时间:2011-04-15 20:58:32

标签: iphone uiwebview uiwebviewdelegate

嘿伙计们!我有一个tumblr应用程序,我正在开发,我有一个按钮,推动一个模态视图,包含webview和底部的工具栏,带有刷新,后退,前进和完成按钮。后退和刷新按钮工作,但我希望能够判断webview是否可以实际返回/转发,如果没有,则禁用按钮..我已尝试下面的代码,图像和启用/禁用更改

- (IBAction)refreshPage {
    [signUpWebView reload];
}

- (IBAction)goBack {
    [signUpWebView goBack];
}

- (IBAction)goForward {
    [signUpWebView goForward];
}


-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    // Enable or disable back
    if ([signUpWebView canGoBack]) {
        [backOnePage setEnabled:YES];
        backOnePage.image = [UIImage imageNamed:@"backButton"];
    } else {
        [backOnePage setEnabled:NO];
        backOnePage.image = [UIImage imageNamed:@"backButtonDisabled"];
    }

    // Enable or disable forward
    if ([signUpWebView canGoForward]) {
        [forwardOnePage setEnabled:YES];
        forwardOnePage.image = [UIImage imageNamed:@"forwardButton"];
    } else {
        [forwardOnePage setEnabled:NO];
        forwardOnePage.image = [UIImage imageNamed:@"forwardButtonDisabled"];
    }

}

非常感谢任何建议!

2 个答案:

答案 0 :(得分:8)

我建议将前进和后退按钮直接绑定到UIWebview。

enter image description here

自动启用和禁用,如下所示:

- (void)webViewDidStartLoad:(UIWebView *)mwebView {
    backButton.enabled = (webView.canGoBack);
    forwardButton.enabled = (webView.canGoForward);
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    backButton.enabled = (webView.canGoBack);
    forwardButton.enabled = (webView.canGoForward);
}

答案 1 :(得分:0)

首次初始化webView时,请尝试使用请求启动它,如下所示:

[signUpWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];

因此,您要使用webView而不是loadRequest:或类似内容初始化loadHTMLString: