Désolé de la question fondamentale, mais cela me bugs depuis un moment maintenant.
Je crée une vue de détails d'une manière utable et essayez de définir de manière dynamique ses étiquettes, mais elles ne mettent pas la mise à jour: p> Les connexions du constructeur d'interface sont définies. L'onglet Connexions pour le propriétaire de fichier affiche P> Il y a la lumière: p> Après avoir joué avec elle pendant un peu plus, j'ai déplacé la déclaration PushViewController au-dessus des mises à jour de l'étiquette. Cela résolvait les mises à jour d'étiquettes. P> Code de travail ressemble à ceci: p> mais je ne comprends pas pourquoi je dois d'abord pousser mon opinion ?? ? p> p>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
myObject *tmpObj = [[myObject objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
myViewController *tmpVC = [[myViewController alloc] initWithNibName:@"NIBfile" bundle:nil];
[self.navigationController pushViewController:tmpVC animated:YES];
[tmpVC.myLabel setText:tmpObj.myTitle]; // The debugger shows the text: myTitle = "myText"
NSLog(@"%@", tmpVC.myLabel); // NSLog SHOWS NULL
[tmpObj release];
}
5 Réponses :
Si TMPVC.MYLABEL CODE> est NULL, qui indique probablement que vous n'avez pas apporté la connexion nécessaire au constructeur d'interface à partir de l'Uilabel à votre variable d'instance MyLabel. P>
La connexion existe: les points de vente du propriétaire de fichier indiquent 'My Label' - 'Label (Mylabel)'.
n'est-ce pas parce que votre nslog code> tente d'imprimer l'objet d'étiquette réel. Si vous n'avez pas NSLog(@"%@", tmpVC.myLabel.text);
hmm, je pense que tu es juste là, mais (a) quand j'essaie d'ajouter ".text", je reçois une erreur de compilateur "Membel" MyLabel "Pas dans la structure ou l'union"
(B) de la déclaration SecondExt Ne produit aucune mises à jour en vue.
peut-être (a) conduit à la vue non bien connectée à la pointe ou au contrôleur, mais ne peut pas voir où la pause pourrait rester assis ...
ajouté plus à ma réponse, voir ci-dessus
Salut Codezy, Désolé, c'était une faute de frappe (corrigée ci-dessus). IB Woud ne me laissez pas connecter la classe de correspondance 2 W / OUT. La définition est Uilabel ...
Libérez-vous cette étiquette partout autre que celle de DealLoc, car cela pourrait le faire.
Pas un servalal, mais jetez un coup d'œil à mes mises à jour dans la question ci-dessus (sous la lumière). Il semble que la séquence de code avait besoin de changer
Avez-vous @Synthesize code> Votre propriété Mylabel code> dans myViewController.m code>? Vous devriez être capable de faire quelque chose comme: p>
tmpvc.mylabel.text = tmpobj.mytitle; code> p>
C'était dans mon cas. Oublié "@synthesize". Merci!
Pas sûr, mais je pense que c'est ce qui se passe: p>
Lorsque la vue est enfoncée, le contrôleur charge la vue de la nib et raccroche les actions et les points de vente. Avant cela, les points de vente ne sont pas connectés, donc tmpvc.mylabel est nul. P>
Si vous voulez être sûr, vous pouvez mettre un point d'arrêt dans ViewDidload code> de TMPVC pour voir lorsque la vue est chargée. P>
C'est parce que la vue du contrôleur est créée paresseusement uniquement lorsqu'elle est accessible. Appuyer sur le contrôleur accède à la vue.
Alternativement, si vous ajoutez une ligne pour accéder à la propriété Afficher, elle fonctionnera aussi: P>
myViewController *tmpVC = [[myViewController alloc] initWithNibName:@"NIBfile" bundle:nil]; tmpVC.view; // Force view creation [tmpVC.myLabel setText:tmpObj.myTitle]; // The debugger shows the text: myTitle = "myText" NSLog(@"%@", tmpVC.myLabel); // NSLog will display "myText" [self.navigationController pushViewController:tmpVC animated:YES];
Merci @ hwee-boon-yar BTW, TMPVC.View a renvoyé un avertissement, [TMPVC View] fonctionne à 100% pour moi;)
Je viens de trouver cela avec le même problème - ce n'est pas un "merci", juste pour signaler l'autre option que j'ai utilisée consistait à stocker le texte de l'objet Contrôleur d'affichage et à la définir dans la vue ViewDidLoad
merci de me permettre une nouvelle chose d'apprendre .Force Voir la création. + 1 de mon côté
Le libérez-vous n'importe où dans votre code autre que le DEALLOC?