#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. Однако я не знаю, делаете ли вы это уже, поскольку у меня нет вашего кода.