2017-03-04 5 views
1

Je travaille sur une fiche d'installation dans lequel ressemble actuellement à ceci:volet Installer listener suivant bouton

enter image description here

Actuellement, je désactiver le bouton « Continuer » avec [self setNextEnabled:NO] jusqu'à ce que tous les champs sont entrés. Ce que je voudrais être capable de faire, c'est d'exécuter du code quand on clique sur le bouton suivant. Ici, je voudrais ping sur le serveur, et seulement aller réellement au volet suivant si je reçois pong.

Comment puis-je avoir un écouteur pour ce bouton?

Mon code va un peu comme ceci:

#import "MyInstallerPane.h" 

@implementation MyInstallerPane 

- (void)didEnterPane:(InstallerSectionDirection)dir{ 
    [self toggleContinueButton]; 
    [self initTempDir]; 
} 

.. + my own functions.. 
+0

Comment faire le bouton gris continuer? '[self setNextEnabled: NO];' ne fonctionne pas pour moi – jimwan

+0

@jimwan Assurez-vous que vos fichiers 'xib' et' .h' sont connectés (vous devriez être capable de faire glisser depuis 'xib' vers' .h' Pour faire un 'IBOutlet' Ensuite, comme ci-dessus, faites-vous' @ implement' le '.h' dans le fichier' .m' – OrangePot

+0

Je trouve que la raison en est que c'est la première page. Je l'insère avant la page d'introduction Et je peux désactiver le bouton dans les autres pages avec le même code. Savez-vous comment résoudre ce problème? – jimwan

Répondre

2

Vous pouvez remplacer la méthode déléguée

- (BOOL)shouldExitPane:(InstallerSectionDirection)dir;

Une sous-classe doit remplacer cette méthode si elle a besoin pour éviter la InstallerPane de sortir. Appelé pour déterminer si un volet doit quitter et autoriser l'affichage d'un autre volet à l'écran. Une fois que le programme d'installation décide qu'il est temps de quitter, il peut appeler gotoNextPane ou gotoPreviousPane pour quitter sans réappeler shouldExitPane.

Par exemple:

- (BOOL)shouldExitPane:(InstallerSectionDirection)dir { 

    if (!good) { 
     return NO 
    } 

    return YES 

}