Comment dans un onglet de la barre de contrôleur puis-je enchaîner à partir d'un point de vue contrôleur à l'autre et conserver la barre d'onglet?
J'ai une application avec plusieurs contrôleurs de vue contrôlé à partir d'un onglet de la barre de contrôleur. À partir de l'un de ces contrôleurs de vue que je veux (en cliquant sur un bouton) segue un autre point de vue contrôleur et de conserver la barre d'onglets au bas de la s'est alors tourné à vue.
J'ai utilisé
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"newView"]){
UIViewController *controller =segue.destinationViewController;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
}
}
Cela fonctionne bien sauf la barre d'onglets est manquant à partir de la s'est alors tourné à vue (un espace réservé à l'affiche dans la table de montage séquentiel, mais il n'apparaît pas lorsque l'application est exécutée)
J'ai aussi essayé de remplacer
[self presentModalViewController:controller animated:YES];
avec
[self presentViewController:controller animated:YES completion:nil];
mais cela ne fonctionne pas non plus.
Un peu de débogage montre que, pour la s'est alors tourné-de-vue-contrôleur, le tabBarController propriété est définie à zéro.
Est-il de toute façon à conserver la barre d'onglet dans le s'est alors tourné-de-vue-contrôleur?
OriginalL'auteur John | 2012-03-14
Vous devez vous connecter pour publier un commentaire.
De votre explication, je ne pense pas que vous voulez un modal contrôleur. Modal est utilisé pour l'incrustation, le rendu de votre barre d'onglets inutiles. À partir de votre scénarimage, sélectionnez votre segue et sélectionnez push, non modale.
Push vs Modal (Remarque la barre d'onglet):
Pour lancer la séquence de code à utiliser
[self performSegueWithIdentifier:@"theSegueIdentifier" sender:selfOrSomeObject]
qui est une méthode deUIViewController
. Cette lignecontroller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:controller animated:YES];
est utilisé pour modal les transitions ne pousse. Supprimer cette ligne.Aussi à partir de la Pomme de docs pour presentModalViewController:animé..."Sur iPhone et iPod touch, le point de vue de modalViewController est toujours présenté en plein écran. Sur iPad, la présentation dépend de la valeur de la modalPresentationStyle de la propriété.
J'avais commencé avec le code comme vous le suggérez, et ne pouvait pas obtenir la séquence de travail jusqu'à ce que j'ai inséré les lignes supplémentaires. J'ai maintenant compris que pousser enchaîne seulement travailler au sein d'une manette de Navigation (et peut obtenir que le travail). Je pensais que la manette de Navigation allait être un problème, mais j'ai trouvé la "visibilité de la barre de case à cocher" et je suis en rejetant le point de vue avec [auto.navigationController popViewControllerAnimated:N];. Merci pour votre aide, en particulier la doc citation, que j'avais lu mais oublié.
OriginalL'auteur Gobot