2010-09-03 11 views
4

J'ai actuellement un webview créé mais je ne veux pas utiliser le constructeur d'interface pour créer les boutons de retour, d'avance et d'actualisation. Comment créer ces boutons par programme? Je sais comment créer des boutons réguliers avec du code, mais en ce qui concerne les boutons de délégué webView, je suis perdu et je n'ai pas pu trouver beaucoup de ressources dessus.Comment créer des boutons Précédent, Suivant et Actualiser pour un UIWebView par programmation?

Répondre

1

Vous devez définir la cible et l'action pour les boutons en utilisant addTarget:action:forControlEvents: à votre affichage Web.

7

De la documentation UIWebView:

Si vous permettez à l'utilisateur de revenir en arrière et en avant à travers l'histoire de la page Web, vous pouvez utiliser les méthodes goBack et goForward comme actions pour les boutons. Utilisez les propriétés canGoBack et canGoForward pour désactiver les boutons lorsque l'utilisateur ne peut pas se déplacer dans une direction.

Configuration des boutons utiliseraient alors addTarget:action:forControlEvents: (comme l'a souligné Sven):

[myBackButton addTarget:myWebView 
       action:@selector(goBack) 
     forControlEvents:UIControlEventTouchDown]; 

Si vous voulez obtenir la fantaisie et activer/désactiver les boutons en fonction des propriétés canGoBack et canGoForward, vous devra ajouter quelques notifications KVO à votre UIController.

+0

Juste pour partager un bon tutoriel: http://iosdeveloperzone.com/2013/11/17/tutorial-building-a-web-browser-with-uiwebview-revisited-part-1/ – user1872384

0

Pour activer/désactiver bouton Précédent ou Suivant au lieu d'utiliser KVO, nous pouvons utiliser les éléments suivants « hack »

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

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

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

Une façon plus simple pour activer ou désactiver les boutons est:

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [backButton setEnabled:webView.canGoBack]; 
    [fwdButton setEnabled:webView.canGoForward]; 
} 
Questions connexes