2010-02-23 14 views
8

soy nuevo en iphone. Quiero desactivar el botón Atrás (botón de flecha izquierda) y Adelante (botón de flecha a la derecha) en UIToolBar en UIWebView. Después de mover la página web, quiere habilitar el botón Atrás y luego, el botón Reenviar quiere habilitar cuando sea necesario. en mi aplicación, estoy usando la barra de herramientas en la parte inferior a través del constructor de interfaz. por favor, alguien me ayude!Deshabilitar el botón Atrás y Adelante en UIToolBar en UIWebview

Respuesta

28

enviar el siguiente mensaje al objeto botón para activar/desactivar:

// Enable 
[myButton setEnabled:YES]; 

// Disable 
[myButton setEnabled:NO]; 

Para determinar si debe mostrar estos botones usted debe comprobar las siguientes propiedades en la vista web:

[myWebView canGoBack]; 
[myWebView canGoForward]; 

Usted Quisiera comprobar esto cada vez que el usuario carga una página. Para hacerlo implementar el método UIWebViewDelegate webViewDidFinishLoad:

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

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

} 
+0

Muchas gracias, su código resuelto mis problemas – Sivanathan

4

Sólo implemento en Uno de los métodos delegado de web View.

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

Aparte de pheelicks responder, he tenido que hacer el siguiente cambio en desactivar el botón de regreso cuando se vuelve a la primera página y el botón de avance cuando se va la última página.

Se agregó un observador en WebHistoryItemChangedNotification.

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

actualización de estados de botón en 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; 
    } 
} 

Consulte: Same is answered here

0

Una solución de dos revestimiento para Swift:

func webViewDidFinishLoad(_ webView: UIWebView) { 
    btnBack.isEnabled = webView.canGoBack 
    btnForward.isEnabled = webView.canGoForward 
} 
Cuestiones relacionadas