2010-01-10 4 views
2

J'essaie de passer un NSString d'une vue à une autre, mais cela ne fonctionne pas. Je mis un NSString dans la SecondViewController comme propriétéImpossible de passer un NSString d'une vue à une autre vue

@property (assign) NSString * wert1; 

Lorsque je charge le SecondViewController avec un bouton-pression sur la FirstViewController, je tente de passer le NSString:

SecondViewController *Second = [[SpinViewController alloc] initWithNibName:nil bundle:nil]; 
Second.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"black.png"]]; 
[Second setWert1:texteingabe1]; //HERE <<<< 
Second.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:Second animated:YES]; 
[Second release]; 

Dans le SecondViewController je fais ce :

NSLog(@"%@",wert1); 

Mais NSLog dit simplement: (null). Pourquoi?

Merci pour votre aide et désolé pour mon mauvais anglais.

Répondre

0

Vous avez la solution. Je viens de déplacer le code d'arrière-plan sous le code setWert1 et maintenant cela fonctionne :)

+0

Toute idée de pourquoi cela fonctionne serait géniale ... –

3

Où appelez-vous cette déclaration NSLog? Si c'est dans loadView ou viewDidLoad, cela ne fonctionnera pas, car ces méthodes sont appelées avant que setWert1: soit appelée dans votre exemple.

Aussi, assurez-vous que vous n'êtes pas le mettre à zéro ailleurs avant la NSLog est appelée, et bien sûr, assurez-vous que texteingabe1 est,

1

en fait, pas nul quand il passe dans. Est-ce travailler si vous définissez une chaîne littérale brute? I.e [Deuxième setWert1: @ "Foo"]? Sans voir plus de code, la raison la plus probable pour que la valeur de chaîne soit NULL, à l'intérieur de la deuxième vue, est que vous avez passé une chaîne NULL pour 'texteingabe1'.

+0

Ne fonctionne pas, désolé. – Flocked

1

Vous devez copier ou conserver la chaîne dans votre second contrôleur. Utilisez le mot-clé @property "retain" au lieu de "assign". Assign affecte juste la chaîne à votre membre d'instance dans Second ... puis lorsque la chaîne est relâchée dans le premier contrôleur, elle disparaît également de Second.

+0

Ne fonctionne pas avec conserver. – Flocked

Questions connexes