0

je sais que c'est déjà allouer des informations à ce sujet sur Internet, mais je suis nouveau à la programmation et peu confus, j'ai besoin de peu d'aide s'il vous plaît ... par exemple j'ai 10 vues contrôleurs et commutation entre un avec des boutons commutation avecComment changer correctement de vue?

-(IBAction)goToSecondView:(id)sender { 

SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
[self presentModalViewController:secondView animated:NO]; 
[secondView release]; 
    } 
    /* or */ 


-(IBAction)goToSecondView:(id)sender { 

SecondViewController *secondView = [[SecondViewController alloc] 
initWithNibName:@"SecondViewController" bundle:nil]; [self.view addSubview:secondView.view]; 
[secondView release]; 
} 

et après nécessité si je passe pour enlever la première vue avec ce qui suit:

[self.view removeFromSuperview]; /* or */ [self dismissModalViewControllerAnimated:YES]; 

et je ne sais pas comment faire enlever la première vue quand je commutation à la seconde, par exemple lorsque aller de FirstView à SecondVi ew la deuxième vue, besoin d'enlever le FirstView et après de SecondView aller à ThridView ou SevenView exemple et ont besoin d'enlever le SecondView ... Comment puis-je faire ? pouvez-vous faire un exemple de code s'il vous plaît? Je sais que c'est très facile mais pas pour moi, im nouveau à la programmation

-------------------- mise à jour ----------- -------------------------------------------------- -----

je veux faire quelque chose comme>here < mais je ne comprends pas tout, peut-on faire un exemple de code s'il vous plaît?

Merci beaucoup

Répondre

0

Laquelle de ces méthodes que vous utilisez (ou si vous devez utiliser un autre) dépend exactement ce que vous essayez d'atteindre.

S'il y avait une vue qui énumérait tous les autres et que tout ce que vous vouliez faire était d'aller et venir entre la première vue et une autre, alors l'approche presentModalViewController: otherView serait bien. Si vous ajoutez les autres vues sous forme d'une sous-vue des premières et que vous les couvrez complètement, ce n'est pas la meilleure façon de faire les choses. Vous devriez plutôt ajouter l'autre vue en tant que sous-vue de la fenêtre (ou la vue parent d'autres vues), puis supprimer cette vue de la vue fenêtre/parent en utilisant [theView removeFromSuperview]; Si vous avez une structure hiérarchique, c'est-à-dire que vous pouvez aller de plusieurs couches, de la première à la seconde, de la troisième à la troisième, vous devriez utiliser un UINavigationController. Chaque fois que vous voulez afficher une nouvelle vue, vous la poussez sur la pile de UINavigationController, pour revenir au niveau précédent (si vous utilisez la barre de navigation par défaut avec un bouton de retour, ceci est pris en compte pour vous). Dans cette situation, vous n'avez pas besoin de supprimer les vues invisibles et de les recréer quand vous en avez besoin, tout cela étant pris en charge par UINavigationController.

+0

i wana faire quelque chose comme ça, mais je ne sais pas comment la rendre correcte SecondViewController * secondView = [[SecondViewController alloc] initWithNibName: @ paquet "SecondViewController": nil]; [self presentModalViewController: secondView animé: NO]; [FirstViewController dismissModalViewControllerAnimated: YES];// rejeter la vue actuelle lors du passage à un autre – Sania

+0

rejeter la vue actuelle lorsque je passe à l'autre, par exemple d'abord je vais de FirstView à SecondView après je vais de SecondView à FiveView et après à nouveau à SecondView, et je ne sais pas comment faire Pour ignorer la vue actuelle lors du passage à un autre – Sania

+0

Si c'est comme cela que vous le faites, vous n'avez pas besoin de rejeter la vue vous-même, l'OS veillera à ce que les vues non visibles ne gaspillent pas plus l'espace dont ils ont besoin. – mbehan

0

Rappelez-vous également que vous ne devez pas toujours supprimer les vues. Vous pouvez les cacher à la place.

[self.view setHidden: OUI]

Ce sera juste les rend pas tirer. C'est pratique, car removeFromSuperview libère réellement la vue de la mémoire à moins qu'elle n'ait été conservée, ce qui signifie que vous ne la récupérerez jamais.