Objective-C Language Mise en œuvre des protocoles et du mécanisme de délégation.


Exemple

Supposons que vous ayez deux vues ViewA et ViewB

L'instance de ViewB est créée dans ViewA , de sorte que ViewA puisse envoyer un message à ViewB's instance ViewB's , mais pour que l'inverse se produise, nous devons implémenter la délégation (de sorte que l'utilisation de ViewB's instance de délégué ViewB's puisse envoyer un message à ViewA )

Suivez ces étapes pour implémenter la délégation

  1. Dans ViewB créez le protocole en tant que

     @protocol ViewBDelegate 
    
    -(void) exampleDelegateMethod;
    
     @end
    
  2. Déclarez le délégué dans la classe d'expéditeur

     @interface ViewB : UIView
     @property (nonatomic, weak) id< ViewBDelegate > delegate;
     @end
    
  3. Adoptez le protocole en classe ViewA

    @interfac ViewA: UIView < ViewBDelegate >

  4. Définir le délégué

    -(void) anyFunction   
    {
        // create Class ViewB's instance and set the delegate
        [viewB setDelegate:self];
    }
    
  5. Implémenter la méthode delegate dans la classe ViewA

    -(void) exampleDelegateMethod
    {
        // will be called by Class ViewB's instance
    }
    
  6. Utilisez la méthode dans la classe ViewB pour appeler la méthode déléguée en tant que

    -(void) callDelegateMethod
    {
        [delegate exampleDelegateMethod];
        //assuming the delegate is assigned otherwise error
    }