2010-01-05 5 views
1

Je change la couleur d'arrière-plan du contrôleur de vue unique à tous les autres contrôleurs de vue. mais cela ne fonctionne que lorsque je commence avec ce contrôleur unique. Si j'ai commencé avec un autre contrôleur, je n'obtiens pas de changement d'arrière-plan pour ce contrôleur.
Je pense que parce que si je commence avec un autre contrôleur, sa méthode init est appelée et les changements que j'appelle du contrôleur unique après aller à un autre contrôleur n'apparaissent pas pour l'autre contrôleur. Donc, comment pouvons-nous réinjecter l'autre contrôleur afin que les changements apparaissent également dans l'autre contrôleur.comment réinitialiser le contrôleur de vue à chaque fois

+0

Dans votre méthode init, êtes-vous en train de changer la couleur en mettant directement la propriété backgroundColor sur l'objet de vue? – Anurag

+0

Je fais comme ceci où color1 est global que je prends de contrôleur unique pour changer dans ce contrôleur - (void) viewDidUnload { \t // Libérer toutes les sous-vues conservées de la vue principale. \t // par ex. self.myOutlet = nil; \t UIColor * color1 = color2; \t self.view.backgroundColor = color1; \t } – uttam

Répondre

3

Vous ne devez pas réinitialiser un objet qui a déjà été initialisé.

Je pense que vous devriez envisager d'utiliser la méthode viewWillAppear qui est appelée quand une vue devient active.

- (void)viewWillAppear:(BOOL)animated 

Vérifiez la documentation Apple here

+0

grâce à son travail pour la couleur de fond – uttam

Questions connexes