2010-12-06 11 views
0

Ainsi j'ai fait ceci pendant quelque temps maintenant et ai couru dans une erreur vraiment étrange. J'ai une vue qui contient un UITextView, mais quand j'essaye de placer le texte après allocation de la vue, rien ne se produit. Si je l'arrête et regarde la valeur, c'est 0x0, ce qui n'a vraiment aucun sens. Les composants ont été déclarés et connectés dans IB, ce n'est donc pas le problème. Voici la partie qui me donne des problèmes:UITextView n'allouant pas dans la vue

NewView *view = [[NewView alloc] initWithNibName:@"NewView" bundle:[NSBundle mainBundle]]; 
view.label.text = string1; 
view.textView.text = string2; 
view.textView.editable = NO; 

Si je le casse là-bas et vérifier les valeurs, c'est là, il est 0x0. C'est pourquoi ça ne charge pas, mais je n'arrive pas à comprendre pourquoi ça ne marche pas. Je l'ai fait des tonnes de fois et je n'ai jamais vu ça auparavant. Quelqu'un at-il des idées sur ce qui se passe?

+0

S'il est connecté dans IB - avez-vous déclaré la propriété et appelé '@synthesize textView'? –

+0

Ouais mec. Voilà pourquoi je suis si confus. – gabaum10

+3

Je ne suis pas sûr si c'est le cas, mais j'avais l'impression que les éléments de l'interface utilisateur ne seront pas initialisés jusqu'à ce que 'viewDidLoad:'? Je dirais le passer comme une variable et essayer de l'assigner dans la méthode 'viewDidLoad:'? –

Répondre

0

La solution à cela était très simple.

Tejaswi a souligné que les composants de l'interface utilisateur ne sont pas initialisés tant que la méthode viewDidLoad: n'est pas exécutée. J'ai donc passé les chaînes en tant que varaible et défini le texte du champ dans la méthode viewDidLoad:. Cela a fonctionné.