Simple Passage de variables entre les classes dans Xcode
Je suis en train de faire une application ios, mais je suis coincé à la transmission des données entre les classes .
C'est ma deuxième application . La première a été faite avec une classe globale , mais maintenant j'ai besoin de
plusieurs classes . J'ai essayé beaucoup de tutoriels , mais n'ont pas de travail ou à la valeur passée est toujours à zéro . Quelqu'un peut-il svp m'écrire une application simple pour démontrer le passage de variables dans IOS 5 .
Rien de spécial , storyboard avec 2 contrôleurs de vue , une seule variable .
Merci pour votre aide .
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//Navigation logic may go here. Create and push another view controller.
FirstViewController *fv;
fv.value = indexPath.row;
NSLog(@"The current %d", fv.value);
FirstViewController *detail =[self.storyboard instantiateViewControllerWithIdentifier:@"Detail"];
[self.navigationController pushViewController:detail animated:YES];
}
voici le code de ma vue principale et j'ai besoin d'envoyer le indexPath.ligne ou de l'indice de la cellule que j'ai appuyé sur la vue suivante
poste le code....
je pensais à une simple application vide, mais ok , à venir dans quelques minutes
ahahah, je garde ce lien!!!
OriginalL'auteur Shawn | 2012-05-18
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs choses à faire. Selon l'application, vous pouvez soit ajouter une variable à la AppDelegate classe, les rendant disponibles pour toutes les classes, par une instance partagée. Le plus courant (je pense) est de faire un singleton. Pour que cela fonctionne, vous pouvez faire une classe, dire StoreVars, et une méthode statique qui renvoie l'objet, ce qui rend la classe "global". Dans la méthode, vous initialiser toutes les variables, comme vous serait toujours. Ensuite, vous pouvez toujours les atteindre à partir de n'importe où.
Cela fera un singleton. Si vous vous rappelez de l'importation "StoreVars.h" dans vos deux viewControllers, vous pouvez accéder à la désormais partagée tableau comme ceci;
C'est une méthode retournant un StoreVars objet. Dans le StoreVars de classe, vous pouvez mettre n'importe quel objet et de l'initialiser dans la méthode statique. Juste rappelez-vous de toujours initialiser, ou d'autre, votre objet sera 0/néant.
Si vous n'êtes pas un fan de la UINavigationController et préfère utiliser enchaîne, il est beaucoup plus facile, mais il peut rendre votre application plutôt "désordre" de l'omi. Il y a une méthode mise en œuvre dans UIViewController vous devriez surcharge:
source: Comment passer prepareForSegue: un objet
De faire quelques recherches avant de poser des questions de ce genre. Lire des tutoriels, et essayer vous-même, et ensuite poser des questions relatives à ce que vous recherchez vraiment. Ce n'est pas tous les jours des gens veulent faire tout le travail pour vous, mais parfois, vous avez de la chance. Comme aujourd'hui.
Acclamations.
OriginalL'auteur Martol1ni
si vous utilisez des enchaînements entre les 2 contrôleurs, vous devez surcharger prepareToSegue méthode
vous devez assigner votre fv donc, avant de fv.valeur = 10; vous avez besoin fv = [segue destinationViewController];
OriginalL'auteur John Smith
Le problème que vous rencontrez est assez déroutant pour les débutants. La section "résolution" de manière erronée peut entraîner dans l'apprentissage d'une tonne de mauvaises habitudes.
Jetez un oeil à Ole Begemannl'excellent tutoriel sur Le Passage Des Données Entre Les Contrôleurs De Vue - il vaut vraiment la lecture.
OriginalL'auteur matm