2009-12-02 6 views
0

Salut, je suis nouveau à l'IPhoneSDK alors s'il vous plaît, restez avec moi. Ce que j'essaie de faire, c'est d'avoir une vue avec 10 boutons, nommés respectivement 'one' et 'ten'. Ce que je veux faire, c'est que quand je clique sur un bouton (par exemple: 'nine'), ça passe à une autre vue, avec une animation, puis sur cette vue suivante, il y a une étiquette qui affichera le texte correspondant sur quel bouton J'ai précédemment cliqué. (par exemple: j'ai appuyé sur le bouton "neuf", sur la page suivante, l'étiquette dira "neuf")IPhone SDK - Passer des variables entre les vues avec des animations

Si ce n'est pas vraiment compliqué, il serait très apprécié que chacun de vos concepts fonctionne aussi.

J'ai fondamentalement mon propre code mais c'est sûrement confus et faux.

Conceptuellement, ce que j'ai essayé et appris à ce jour est:

1.) J'ai essayé et animant de commutation vues à l'aide addSubviews, insérez subviews, setAnimations etc. Je réussi à changer de vue, mais je ne sais pas comment passer les données.

2.) J'ai appris les contrôleurs pushView. A partir des tutoriels que j'ai vus, j'ai pratiqué sur une table hiérarchique. J'ai appris que seuls UIViewControllers et UITableViewControllers sont les seuls qui peuvent être poussés. Je sais comment l'appliquer si c'est dans une table mais je ne sais pas comment l'appliquer dans les vues (parce que mon application a les boutons dispersés aléatoirement sur l'écran)

Si vous pouvez me donner un échantillon approximatif de ce que J'essaie de faire, même au moins pour le concept étape par étape, je l'apprécierais grandement et vous remercierai toute ma vie. J'ai travaillé dessus pendant des semaines. et ne pas avoir une personne réelle pour m'expliquer correctement est difficile.

S'il vous plaît et merci gentil monsieur/maam

Répondre

1

Essayez d'utiliser des étiquettes. Donnez une étiquette à chacun de vos boutons (1 à 10) et quand un bouton est cliqué, obtenez l'étiquette de l'expéditeur. De cela, vous pouvez savoir sur quel bouton a été cliqué. Veuillez noter que ceci n'est nécessaire que lorsque vous utilisez la même méthode pour tous les clics de bouton.

Dans le viewcontroller suivant à afficher, créez une propriété (disons clickedButton) de type NSString et synthétisez-la dans le fichier .m.

Après avoir obtenu le texte dans une variable basée sur le bouton cliqué, créer un nouvel objet de la viewcontroller à afficher (je suppose que vous faites déjà) et définissez la propriété boutonCliqué de cet objet viewcontroller.

NewViewController *nController = [[NewViewController alloc] initWithNibName:@"NewView"]; 
[nController setClickedButton:yourStringVariableWithButtonName]; 
[[self navigationController] pushViewController:nController animated:YES]; 

Dans NewViewController, définissez le texte de l'étiquette boutonCliqué

[yourLabel setText:clickedButton]; 

espoir qui aide.

+0

quand vous avez fait référence à navigationController, est-ce que je tape dans "navigationcontroller" lui-même ou est-ce que cela est censé signifier un de mes contrôleurs qui sert un contrôleur de navigation? – Dan

+0

aussi, j'ai mis le code que vous avez fourni dans un - (IBAction) buttonClicked; Est-ce que je le fais bien? – Dan

+0

navigationController est la référence que vous obtenez pour UINavigationController dans une application basée sur la navigation. Mettez dans le type d'application que vous utilisez et le code que vous avez inclus dans votre application afin que nous puissions vous aider avec où vous pourriez aller mal. Avez-vous un NewViewController? – lostInTransit

0

C'est bon maintenant! Je comprends parfaitement les concepts de viewcontrollers et de contrôleurs de navigation!

Une question cependant. J'ai ce code que je prévois d'assigner dans mes boutons.Je ne sais pas comment obtenir l'étiquette de chaque touche donc je peux l'utiliser:

- (IBAction) loadZodiac: (NSInteger) balise {

NSString *zodiac; 

switch (tag) { 
    case 1: 
     zodiac = @"Aries"; 
     break; 
    case 2: 
     zodiac = @"Taurus"; 
     break; 
    case 3: 
     zodiac = @"Gemini"; 
     break; 
    case 4: 
     zodiac = @"Cancer"; 
     break; 
    case 5: 
     zodiac = @"Leo"; 
     break; 
    case 6: 
     zodiac = @"Virgo"; 
     break; 
    case 7: 
     zodiac = @"Libra"; 
     break; 
    case 8: 
     zodiac = @"Scorpio"; 
     break; 
    case 9: 
     zodiac = @"Sagittarius"; 
     break; 
    case 10: 
     zodiac = @"Capricorn"; 
     break; 
    case 11: 
     zodiac = @"Aquarius"; 
     break; 
    case 12: 
     zodiac = @"Pisces"; 
     break; 
    default: 
     zodiac = @"None Selected"; 
     break; 
} 
lovescopesReading = [[LovescopesReading alloc] initWithNibName:@"LovescopesReading" bundle:nil]; 
lovescopesReading.title = zodiac; 
lovescopesReading.message = zodiac; 

Lovescopes6AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
[delegate.navController pushViewController:lovescopesReading animated:YES]; 

}

0
NSString *zodiac; 

for (UIButton *button in [self.view subviews]) { 
    switch (button.tag) { 
     case 1: 
       zodiac = @"Aries"; 
       break; 
     case 2: 
       zodiac = @"Taurus"; 
       break; 
     .... 
     } 

} 
Questions connexes