iPhone - Как сделать так, чтобы пользовательский браузер мог определять, нужно ли включать / отключать кнопки «назад» / «вперед» - PullRequest
2 голосов
/ 16 апреля 2011

Эй, ребята!У меня есть приложение Tumblr, которое я разрабатываю, и у меня есть кнопка, которая выдвигает модальное представление, которое содержит веб-вид и панель инструментов в нижней части с кнопками «Обновить», «Назад», «Вперед» и «Готово».Кнопки «Вперед» и «Обновить» работают, однако я хочу иметь возможность определить, может ли веб-просмотр на самом деле переходить назад / вперед, а если нет, отключить кнопку. Я пробовал приведенный ниже код, и изображение, ни параметр «Включить / отключить» изменяются..

- (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 ]

8 голосов
/ 16 апреля 2011

Я рекомендую привязывать кнопки «вперед» и «назад» непосредственно к 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);
}
0 голосов
/ 16 апреля 2011

Когда вы впервые инициализируете свой webView, попробуйте запустить его с запросом, например так:

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

Итак, вы инициализируете webView с loadRequest: вместо loadHTMLString: или чем-то подобным.

...