2010-02-23 6 views
8

Я новичок в iphone. Я хочу отключить кнопку Back (стрелка влево) и кнопку «Вперед» (стрелка вправо) на UIToolBar в UIWebView. После перемещения веб-страницы нужно включить кнопку возврата, а затем нажать кнопку «Вперед», чтобы включить ее, когда это необходимо. в моем приложении, я использую панель инструментов в нижней части через построитель интерфейса. пожалуйста, помогите мне!Отключить кнопку «Назад» и «Вперед» на UIToolBar в UIWebview

ответ

28

Отправить следующее сообщение для объекта кнопки для включения/выключения:

// Enable 
[myButton setEnabled:YES]; 

// Disable 
[myButton setEnabled:NO]; 

Чтобы определить, следует ли показывать эти кнопки вы должны проверить следующие свойства на WebView:

[myWebView canGoBack]; 
[myWebView canGoForward]; 

You «Я хочу проверить их, когда пользователь загружает страницу. Для того, чтобы сделать так, реализовать метод UIWebViewDelegate webViewDidFinishLoad:

-(void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    // Enable or disable back 
    [myBackButton setEnabled:[myWebView canGoBack]]; 

    // Enable or disable forward 
    [myForwardButton setEnabled:[myWebView canGoForward]]; 

} 
+0

Спасибо большое, ваш код решить мои проблемы – Sivanathan

4

Просто реализовать в одном из метода делегата от WebView.

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 

    if ([webView canGoBack]) 
     [backbutton setEnabled:YES]; 
    else 
     [backbutton setEnabled:NO]; 

    if ([webView canGoForward]) 
     [fwdbutton setEnabled:YES]; 
    else 
     [fwdbutton setEnabled:NO]; 
} 
1

Кроме pheelicks ответ, я должен был сделать следующие изменения, чтобы отключить кнопку назад, когда возвращается к первой странице и кнопки вперед, когда вы идете на последней странице.

Добавлен наблюдатель в WebHistoryItemChangedNotification.

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(webViewHistoryDidChange:) 
              name:@"WebHistoryItemChangedNotification" 
              object:nil]; 

Обновление состояния кнопок в webViewHistoryDidChange.

- (void)webViewHistoryDidChange 
{ 
    if ([theWebView canGoBack]) 
    { 
     self.backButton.enabled = YES; 
    } 
    else 
    { 
     self.backButton.enabled = NO; 
    } 
    if ([theWebView canGoForward]) 
    { 
     self.forwardButton.enabled = YES; 
    } 
    else 
    { 
     self.forwardButton.enabled = NO; 
    } 
} 

См: Same is answered here

0

Два лайнера решение для Swift:

func webViewDidFinishLoad(_ webView: UIWebView) { 
    btnBack.isEnabled = webView.canGoBack 
    btnForward.isEnabled = webView.canGoForward 
} 
Смежные вопросы