2010-09-09 5 views
0

Comment puis-je accéder à une sous-vue ajoutée dans un autre contrôleur de vue? CommeAccéder à la sous-vue dans un autre ViewController?

DummyViewController:

- Subview 1 
- Subview 2 

TestViewController:

- Subview 3 

Maintenant, je veux accéder aux propriétés de 1 sous-vue (DummyViewController) en 3 sous-vue (TestViewController).

Remerciez + Cordialement

Répondre

0

Put ou envoyer les propriétés partagées dans un autre objet ci-dessus à la fois dummyviewcontroller et testviewcontroller (M du modèle MVC) et passer une référence à cet objet modèle vers le bas pour celui qui a besoin de ces propriétés. Ou tout ce qui se trouve au-dessus de ces deux contrôleurs de vue place une référence au contrôleur dummyview dans la sous-vue testviewcontroller.

+0

des échantillons de code? – Tronic

0

importation "DummyViewController.h"

DummyViewController * = factice [[DummyViewController alloc] init];

dummy.subview1.button.hidden = NO; 

Ici j'accède au bouton de subview1 dans testviewcontroller.

espoir que cela fonctionne pour u ...

+0

J'ai essayé cela, mais cela ne me donne pas l'instance actuelle de cette vue! – Tronic

0

Dans "DummyViewController" dans viewDidLoad

subView1.tag = 1; 
subView2.tag = 2; 

Dans TestViewController

DummyViewController *dummy = [[DummyViewController alloc] init]; 
UIView subview1 = [dummy.view viewWithTag:1]; 
+0

est-ce que cela me donne la même instance? – Tronic

0

Les sous vues supplémentaires peuvent être trouvés dans les propriétés de UIView .

property(nonatomic, readonly, copy) NSArray *subviews 

Mais vous avez besoin de quelque chose d'autre pour distinguer ce que vous voulez. Vous pouvez affecter une propriété de tag à la vue ou la distinguer par la classe de la vue.

La méthode pratique -viewWithTag: de UIView peut vous aider à trouver la vue avec une balise unique.

Questions connexes