J'ai un View Controller qui initialise un UIView comme vue. Cette vue initialise un autre UIView en tant que sous-vue. Les deux UIViews communiquent avec View Controller via un délégué/protocole.Comment partager des valeurs entre deux instances de View Controller?
Chaque UIView crée une instance de la ViewController et le rend égal au délégué:
ViewController *aDelegate = [[ViewController alloc] init];
self.delegate = aDelegate;
PROBLÈME: Le View Controller a une variable appelée (int) sélection qui est modifiée par les deux UIViews. Les deux vues doivent savoir comment l'autre a modifié la variable, mais comme chacune a une instance différente du View Controller, cette communication est impossible. Comment pourrais-je résoudre ce problème?
Merci une tonne
EDIT: Peter mentionné attribuer le délégué à la création de vues que j'aime, mais comment pourrais-je faire pour la sous-vue depuis sa création dans le UIView et non le contrôleur View. PS. En réalité, il s'agit d'une sous-vue d'une sous-vue d'une sous-vue. Puis-je les créer toutes dans le View Controller, puis l'affecter en tant que délégué?
Essayé assigner le délégué comme suit, mais il se bloque sans cesse lorsque je tente d'appeler une méthode ViewController de la vue:
MyView *mainView = [[MyView alloc] initWithFrame:frame];
self.view = mainView;
mainView.delegate = self;
[mainView release];
Vous voudrez probablement inverser l'approche. Avoir un seul ViewController et deux UIViews. – joshpaul
C'est ce que j'ai, un contrôleur de vue avec un uiview qui a une sous-vue – John
duplication possible de: http://stackoverflow.com/q/3185760/40175 – Akusete