Concetto semplice, tuttavia non funziona. Ho due pulsanti nel mio UIWebView
, un pulsante indietro e un pulsante avanti. I pulsanti Indietro chiamano [self.webView goBack] e inoltrati [self.webView goForward].iOS - problemi con canGoForward e canGoBack in webViewDidStartLoad
Ora voglio sapere in pratica se lo UIWebView
può tornare indietro. Se è così, quindi abilitare il pulsante Indietro, e lasciarlo tornare, e lo stesso per il pulsante avanti.
-(void)webViewDidStartLoad:(UIWebView *)webView
{
if([self.webView canGoForward]) {
[forwardArrowBtn setEnabled:YES];
} else {
[forwardArrowBtn setEnabled:NO];
}
if([self.webView canGoBack]) {
[backArrowBtn setEnabled:YES];
} else {
[backArrowBtn setEnabled:NO];
}
}
Il problema è che questo non funziona sul primo carico. Per esempio: clicco su un link all'interno dello UIWebView
, va alla pagina, ma il pulsante Indietro è ancora disabilitato e non cliccabile. Non fino a quando non clicco su un altro link, il pulsante Indietro verrà abilitato e inizierà a funzionare.
Come mai questo non funziona la prima volta che vai a una pagina diversa, e funziona solo la seconda volta?
Si tratta di un aggiramento per una soluzione più semplice? Funziona comunque ... – Romes
Puoi mostrare ... o spiegare meglio ...? – Morkrom
'webViewDidFinishLoad:' è il posto giusto per il controllo. Il problema sembra essere un bug in WebKit. Per una spiegazione dettagliata, vedi [http://stackoverflow.com/questions/18948373/why-is-uiwebview-cangoback-no-in-ios7 questa domanda e risposta SO] – Olie