Je n'ai pas complètement compris le mécanisme de délégation dans monotouch. Quelqu'un peut-il m'aider à comprendre ce concept?Monotouch: comprendre le modèle de mécanisme délégué
La question est simple. Je vais essayer de cartographier ce que j'ai fait dans l'Objectif C de Monotouch. Par exemple, supposons que j'ai créé un UIPopoverController
dans Objective C à MyController
. En Objective C le code est le suivant:
@interface MyController : UIViewController <UIPopoverControllerDelegate> {
// ...
}
// ...
@end
intérieur MyController
je peux istantiate un UIPopoverController
comme ce qui suit:
UIPopoverController *popover = // ...
popover.delegate = self;
et enfin les méthodes utilisées dans le délégué.
Alors, qu'en est-il de Monotouch?
Grâce à ce code, je peux istantiate l'intérieur UIPopoverController
MyController
classe qui étend UIViewController
l'intérieur d'un gestionnaire d'événements TouchUpInside spécifique:
popover = new UIPopoverController(new CustomController());
popover.PopoverContentSize = new SizeF(200f, 200f);
popover.PresentFromRect(button.Frame, containerForButtonView, UIPopoverArrowDirection.Left, true);
post-scriptum Un aspect important est de mettre la référence popover en tant que classe membre et non en tant que variable locale dans le gestionnaire car le GC monotouch fonctionne bien !!!
Merci à l'avance.
Ma première solution fonctionne. J'ai implémenté un CustomPopoverController qui étend UIPopoverControllerDelegate. Ensuite, j'ai ajouté en tant que popover.delegate une instance de ce contrôleur. Est-il possible de faire comme le délégué ** MyController ** ou ** CustomController **? –
À quoi ressemblait votre solution? Les seuls événements que je peux voir sont 'DidDismiss' et' WillReposition' ... Pas tellement. – testing