back button n'apparaà®t pas avec custom transition
Salut,
j'ai un petit soucis avec le back button, après une transition normale avec les réglages du storyboard, le back text apparaà®t bien, mais après une custom transition (avec une class qui sert d'animator et les protocol de transition d'ios7), le bouton back n'est plus là . J'utilise presentViewController: ... et j'ai placé le back text dans le storyboard sur le 1er viewController, mais je ne parviens pas à l'afficher :
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ( [[segue identifier] isEqualToString:@second] ){
//SecondViewController *secondViewController = [[UIStoryboard storyboardWithName:@Main bundle:nil] instantiateViewControllerWithIdentifier:@SecondViewController];
SecondViewController *secondViewController = [segue destinationViewController];
secondViewController.transitioningDelegate = self;
[self.navigationController presentViewController:secondViewController
animated:YES
completion:nil];
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je ne comprends pas ce que tu cherches à faire.
-prepareForSegue:sender: est appelée pour te donner une opportunité de fournir des infos au destinationViewController avant l'affichage de sa vue.
Les transitions entre view controllers sont décrites dans le Storyboard; c'est son but. Ce n'est pas à toi de demander l'affichage.
J'ai en fait besoin de mettre le transitionDelegate quelque part, pour mettre une custom transition (avec les protocol "UIViewControllerTransitioningDelegate" et une autre classe qui sert d'animator qui implémente "UIViewControllerAnimatedTransitioning" ).
Il y a la transition "Custom" dans les options de "segue" du storyboard, mais c'est pour faire une sous-classe de UIStoryBoardSegue. Je voulais tester les transitions d'ios7.
Ensuite, pour le presentViewController:..., si je ne le met pas, la transition est celle par défaut du storyboard, c'est-à -dire sans utiliser ma classe animator avec les protocol. Si je le met, par contre, la custom transition marche bien, mais je n'ai plus le back text.
Est-ce qu'il y a une autre façon de faire?
WWDC 2013 vidéo 218
Alors, je dois faire une erreur quelque part, mais je ne vois pas. J'ai enlevé le segue du storyboard, et je crée une instance de mon second viewController à l'appui d'un bouton. La fonction du delegate n'est pas appelée, quand j'utilise pushViewController.
Avec presentViewController sur le viewController, j'ai bien l'effet de transition, mais je n'ai pas la barre de navigation du navigationController.
Avec push..., il n'y a donc pas de transition.
Voilà les captures de la vidéo : (self.delegate, je ne sais pas très bien ce que ça représente, donc j'ai laissé transitioningDelegate, peut-être que l'erreur vient de là ? Sinon, mon secondViewController n'est pas attaché au reste par un segue, et j'ai un navigationController tout simple qui est attaché à SecondViewController par un segue "rootviewController")
Tu veux essayer le code suivant ?
Tu as appelé :
... dans ton "animator" ?
EDIT: je vais peut-être tout simplement utiliser ma propre UI pour le retour en arrière, à moins que quelqu'un ait la solution, merci pour les réponses
Le present... marche bien, mais je n'ai pas le back button. Le code de ton message fonctionne bien, mais pour le viewcontroller. Je pense que je dois utiliser les fonctions du navigationController pour avoir la barre d'item, n'est-ce pas?
Pour le push..., avec la fonction du pdf, cette fonction n'est jamais appelée. J'ai donc simplement la transition par défaut du "push", mais je n'ai pas le retour dans la fonction du delegate.
Voici ce que j'utilise :
et le storyboard (1 rootviewController et son navigationController, et un autre secondViewController avec son navigationController, pas de segue entre les deux) :