j'ai fait 2 vues et je veux envoyer le texte de l'étiquette sur la vue principale à sous vue à un vouloir l'imprimer là sur la valeur du texte d'une autre étiquette .... comment passer cela textecomment faire passer le texte entre les vues
Répondre
Je ne voudrais pas utiliser un singleton ou tout autre 'variable globale'. Cela rendra vos contrôleurs de vue très étroitement couplés et restreindra la réutilisabilité. Je voudrais simplement créer une variable d'instance dans le second contrôleur de vue et le définir dans le principal avant de présenter la vue.
Le deuxième contrôleur de vue définit ensuite le label.text sur la variable d'instance dans (par exemple) viewDidLoad. De cette façon, le deuxième contrôleur de vue ne dépend d'aucun 'globals' ou inclut et sera plus réutilisable.
//SecondViewController.h
@interface SecondViewController : UIViewController {
NSString *theLabel;
}
@property(nonatomic, copy) NSString *theLabel; //Synthesize in implementation
@end
Ensuite, dans le contrôleur principal de la vue:
//Create instance of secondViewController
instanceOfSecondViewController.theLabel = @"Nut";
//Present the second view here
Si la classe A gérer votre view1 et view2 poignée de classe B puis définir une interface en classe B d'accepter une nouvelle étiquette à votre l'un des éléments de l'interface utilisateur, puis appeler cette interface de la classe A.
Regardez dans le Singleton modèle.
What should my Objective-C singleton look like?
Ensuite, vous pouvez faire quelque chose comme:
//view1
#import "SingletonClass.h"
...
[SingletonClass sharedInstance].savedText = @"blah";
et
//view2
#import "SingletonClass.h"
...
lbl.text = [SingletonClass sharedInstance].savedText;
Chaque fois que je vois quelqu'un en utilisant des variables globales ou singletons où l'on est pas nécessaire, je vois quelqu'un qui ne sait pas ce qu'ils font. – lucius