Comment présente-vue-contrôleur de droite à gauche dans iOS à l'aide de Swift
Je suis en utilisant presentViewController pour présenter nouvel écran
let dashboardWorkout = DashboardWorkoutViewController()
presentViewController(dashboardWorkout, animated: true, completion: nil)
Cela présente un nouvel écran, de haut en bas, mais je veux qu'il a présenté de droite à gauche sans l'aide de UINavigationController
.
Je suis en utilisant Xib au lieu de storyboard alors, comment puis-je le faire ?
Vous devez vous connecter pour publier un commentaire.
Il n'a pas d'importance si elle est
xib
oustoryboard
que vous utilisez. Normalement, le droit à la gauche de transition est utilisé lorsque vous appuyez sur un view controller dans presentor deUINavigiationController
.Mise à JOUR
Ajouté la fonction de synchronisation de
kCAMediaTimingFunctionEaseInEaseOut
Exemple de projet avec Swift 4 mise en œuvre ajouté à GitHub
Swift 3 & 4.2
ObjC
Swift 2.x
Semble que le
animated
paramètre dans lapresentViewController
méthode n'a pas vraiment d'importance dans ce cas de transition personnalisée. Il peut être de n'importe quelle valeur, soittrue
oufalse
.Code complet pour présenter ou de faire disparaître, de Swift 3
De lire toutes les réponses et ne voient pas la bonne solution. La bonne façon à le faire est faire de la coutume UIViewControllerAnimatedTransitioning pour présenté VC délégué.
De sorte qu'il suppose de faire des étapes plus, mais le résultat est plus personnalisable et n'ont pas des effets secondaires, comme le déplacement de la vue avec présentés vue.
Ainsi, supposons que vous avez quelques ViewController, et il y a une méthode pour la présentation de
presentTransition
etdismissTransition
est utilisé pour animer votre point de vue contrôleurs.Si vous adoptez votre ViewController à
UIViewControllerTransitioningDelegate
:Donc la dernière étape consiste à créer votre transition personnalisée:
Dans ce code-vue-contrôleur est présenté sur contexte actuel, vous pouvez faire vos personnalisations à partir de ce point. Aussi, vous pouvez voir coutume
UIPresentationController
est utile aussi bien (passer en utilisantUIViewControllerTransitioningDelegate
)Vous pouvez également utiliser des enchaînements.
Swift 3
Essayer cela,
Ici
vc
est viewcontroller,dashboardWorkout
dans votre cas.Si vous voulez utiliser le "quick fix" CATransition méthode....
et puis ...
Tout cela n'est malheureusement pas vraiment correct 🙁
CATransition
est pas vraiment fait pour faire ce travail.Note, vous obtiendrez l'ennuyeux de la croix-fondu au noir qui, malheureusement, les ruines de l'effet.
De nombreux développeurs (comme moi) n'aime vraiment pas à l'aide de
NavigationController
. Souvent, il est plus flexible de présenter dans une manière ad-hoc que vous allez, en particulier pour inhabituelle et complexe apps. Cependant, il n'est pas difficile à "ajouter" une nav contrôleur.simplement sur la table de montage séquentiel, allez à l'entrée de CR et cliquez sur "embed -> valeur liquidative du contrôleur". Vraiment c'est tout. Ou,
dans
didFinishLaunchingWithOptions
il est facile de construire votre nav contrôleur si vous préférezvous n'avez même pas besoin de garder la variable n'importe où, comme
.navigationController
est toujours disponible en tant que propriété - facile.Vraiment, une fois que vous avez un navigationController, il est trivial de faire des transitions entre les écrans,
et vous pouvez
pop
.Qui cependant ne vous donne que le standard apple "double push" effet...
(L'ancien glisse à une vitesse inférieure, en tant que nouveau diapositives sur.)
En général, et étonnamment, vous avez généralement à faire l'effort de faire une transition personnalisée.
Même si vous voulez juste la plus simple et la plus commune, de déplacer ou de déplacer transition, vous n'avez qu'à faire une transition personnalisée.
Heureusement, à faire il y a quelques coupez et collez code réutilisable sur ce QA... https://stackoverflow.com/a/48081504/294884 .
Bonne et heureuse année 2018!
De l'essayer.
importation UIKit et de créer une extension pour UIViewController:
après simlpy appel:
de gauche à droite:
vous pouvez modifier la durée de votre choix à durée...
vue contrôleur de droite à gauche dans iOS à l'aide de Swift
Refrence Par :
[https://developer.apple.com/documentation/quartzcore/catransition%5D%5B1%5D
J'ai une meilleure solution qui a fonctionné pour moi si vous voulez mantain l'animation classique d'Apple, sans voir que le "noir" de transition que vous voyez à l'aide de CATransition(). Utilisez simplement popToViewController méthode.
Vous pouvez regarder pour le viewController vous avez besoin dans
Vous pouvez regarder pour le viewController vous avez besoin en faisant une recherche de restorationIdentifier.
ÊTRE PRUDENT: par exemple, si vous naviguez sur 3 contrôleurs de vue, et lors de l'arrivée de la dernière que vous voulez à la pop de la première. Vous allez perdre, dans ce cas, la référence à l'efficacité de SECONDE vue-contrôleur parce que l'popToViewController a écrasé il. BTW, il y a une solution: vous pouvez facilement enregistrer avant le popToViewcontroller, le VC vous aurez besoin plus tard. Il a travaillé pour moi, très bien.
Cela a fonctionné pour moi :