11
votes

IOS 7 UitablesView inutilisation de pushviewController de pushviewController de manière programmatique, d'animation

EDIT: J'ai trouvé la réponse à ma propre question. S'il vous plaît regarder au bas de mon message. Strong>

J'ai une question d'animation essayant de pousser un uiviewcontroller code> dans dactSelectRowatidexPath code> sur un utableview programmatiquement. Lorsque j'exécute ce code dans iOS 6, cela fonctionne bien. Dans iOS 7, l'animation est gâchée (elle anime à gauche environ 20% de l'écran disparaît puis disparaît). Si je fais cela dans Storyboard, l'animation va bien. Est-ce que je manque quelque chose ou y a-t-il un moyen autour de cela sans utiliser de storyboard? P>

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UIViewController *viewController = [[UIViewController alloc] init];
    [viewController.view setBackgroundColor:[UIColor orangeColor]];
    [self.navigationController pushViewController:viewController animated:YES];
}


4 commentaires

Avez-vous essayé simplement de la mettre dans un bloc d'animation UIView, puis de vous installer ni de travailler?


Fait partie de la question que vous ne voyez pas le CookController poussé sur la pile? Ou est-ce que le problème est que l'ancien ViewController ne se déplace que d'environ 20%?


Mon ViewController apparaît. C'est l'animation qui ne fonctionne pas correctement.


Je pense que vous devez avoir du contenu ou définir un arrière-plan dans la vue. Mais je ne sais pas pourquoi ...


3 Réponses :


2
votes

Ceci est le comportement par défaut "parallaxe" déclenchée par le pushViewController: animation: code> dans iOS 7.

Ayant peu d'expérience avec storyboards code> Je soupçonne que leur Segue code> s sont différents de UINavigationController code> push / pop animations. P>

Vous pouvez remplacer le bouton par défaut / pop par la construction personnalisée animation ou sur mesure transitions interactives . P>

Ou vous pouvez utiliser le UIViewController code> méthode : p>

transitionFromViewController:toViewController:duration:options:animations:completion:


2 commentaires

Oui, vous avez compris ma question, mais je crois: TransitionFromViewController: ToViewController: Durée: Optio NS: Animations: Complets: Ne fonctionne pas pour Uinavigation PushviewController.


Oui, vous avez raison, j'aurais dû mentionner ceci. Je voulais noter que cette méthode est une possibilité, si vous vouliez aller la voie du confinement UIViewController ...



0
votes

J'ai eu des problèmes similaires que j'ai réalisés à réparer en retardant l'appel xxx


0 commentaires

0
votes

J'ai aussi expérimenté cette question. Une autre raison de cela modifierait l'alpha de la vue de destination. Au moins c'est ce que j'ai fait.

Si vous souhaitez modifier l'opacité de la vue lorsque vous affichez une HUD de chargement ou quelque chose, ne modifiez pas l'alpha de la vue. Au lieu de cela, ajustez l'alpha de la vue de la table ou de la vue de collection, ou tout ce que vous avez à cette vue. Si vous avez plusieurs éléments, mettez-les tous dans une vue et modifiez l'alpha de cette vue.

Une autre raison serait également la couleur d'arrière-plan, comme indiqué ci-dessus. Vous devez définir la couleur de fond de la vue de destination. J'ai rencontré cela plusieurs fois aussi.


0 commentaires