iPhone — Как сделать так, чтобы пользовательский браузер мог определять, нужно ли включать / отключать кнопки назад / вперед

#iphone #uiwebview #uiwebviewdelegate

#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"];
    }

}
  

Любые рекомендации были бы с благодарностью приняты!

Комментарии:

1. Пожалуйста, опубликуйте код, который вы используете для создания webview в первую очередь. Как вы инициализируете свой сайт?

Ответ №1:

Я рекомендую привязать кнопки «Вперед» и «Назад» непосредственно к UIWebView.

введите описание изображения здесь

Автоматически включать и отключать следующим образом:

 - (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. Если вы сделаете это, вы также должны убедиться, что вы подключаете UIWebView к владельцу файла в качестве делегата.

Ответ №2:

При первой инициализации вашего WebView попробуйте запустить его с помощью запроса, подобного этому:

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

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

Комментарии:

1. Однако я не знаю, делаете ли вы это уже, поскольку у меня нет вашего кода.