Je suis nouveau dans le monde de Swift, je veux faire une animation en changeant la vue d'un contrôleur de vue à un autre contrôleur de vue. Préparez la scène : J'ai beaucoup cherché mais je n'ai pas trouvé de solution. Quelqu'un a-t-il une solution pour cela ?
Réponses
Trop de publicités?// call following code in the method where you want to add animation effect.
func buttonClicked(sender: UIButton){
let transition = CATransition()
transition.duration = 0.5
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromRight
self.navigationController?.view.layer.addAnimation(transition, forKey: nil)
self.navigationController?.pushViewController(vc!, animated: true)
}
// you can vary the duration of transition according to your convenience
// here transition.type are types of animation which you want to add on view. now we are pushing view so used push type. if want, you can google it for more types.
// subtype will decide the direction on animation.
JuicyFruit
Points
1953
Vous n'avez pas besoin d'utiliser prepareForSeque, vous pouvez faire comme ceci :
@IBAction func buttonClicked(sender: UIButton) {
let destinationVC = storyboard?.instantiateViewControllerWithIdentifier("viewcontrollerID") as! ViewControllerClass
self.presentViewController(destinationVC, animated: true, completion: nil)
}
viewcontrollerID
est défini dans le storyboard (il est appelé identité dans l'inspecteur d'attributs (panneau de droite)), il doit être unique, ViewControllerClass
est la classe de votre ViewController
Si vous utilisez UINavigationController
@IBAction func buttonClicked(sender: UIButton) {
let destinationVC = storyboard?.instantiateViewControllerWithIdentifier("viewcontrollerID") as! ViewControllerClass
self.navigationController?.pushViewController(destinationVC, animated: true)
}