如何更改presentViewController过渡动画
Posted
技术标签:
【中文标题】如何更改presentViewController过渡动画【英文标题】:How to change presentViewController Transition animation 【发布时间】:2015-08-17 09:52:19 【问题描述】:我正在使用 presentViewController 从一个视图更改为另一个没有导航控制器的视图,例如:
let HomeView = self.storyboard!.instantiateViewControllerWithIdentifier("HomeView") as! ViewControllerHome
self.presentViewController(HomeView, animated:true, completion: nil)
如何改变过渡?我想要像导航控制器一样的动画。
我可以使用其他转场,但是我没有找到我想要的转场是我正在使用的代码
let HomeView = self.storyboard!.instantiateViewControllerWithIdentifier("HomeView") as! ViewControllerHome
HomeView.modalTransitionStyle = UIModalTransitionStyle.PartialCurl
self.presentViewController(HomeView, animated:true, completion: nil)
【问题讨论】:
这里已经很好地回答了,不过这个问题很老了。 :***.com/questions/5004102/… @lazyDroid 谢谢,我设法将代码添加到帖子中,我可以更改动画但我没有找到我想要的动画 使用导航控制器。您可以删除所有不需要的内容并获取动画。 尝试使用github.com/MengTo/Spring,它很容易实现并且有额外的动画。 【参考方案1】:Mehul 的答案是正确的,但您也可以按照自己的方式进行操作。用 instanceViewController(withIndentifier: string)
这就是我的做法:
let destController = self.storyboard?.instantiateViewController(withIdentifier: "") as! YourViewController
destController.modalTransitionStyle = .flipHorizontal
self.navigationController?.present(destController, animated: true, completion: nil) // OR
let destController = self.storyboard?.instantiateViewController(withIdentifier: "") as! YourViewController
destController.modalTransitionStyle = .flipHorizontal
self.present(destController, animated: true, completion: nil)
【讨论】:
【参考方案2】:对于在 ios8 上执行此操作的任何人,我必须这样做:
我有一个名为 SettingsView.swift 的 swift 类文件和一个名为 SettingsView.xib 的 .xib 文件。我在 MasterViewController.swift 中运行它(或任何真正打开第二个视图控制器的视图控制器)
@IBAction func openSettings(sender: AnyObject)
var mySettings: SettingsView = SettingsView(nibName: "SettingsView", bundle: nil) /<--- Notice this "nibName"
var modalStyle: UIModalTransitionStyle = UIModalTransitionStyle.CoverVertical
mySettings.modalTransitionStyle = modalStyle
self.presentViewController(mySettings, animated: true, completion: nil)
【讨论】:
这个苹果提供的动画合集很可笑。它提供了压倒性且几乎不实用的东西,如 PartialCurl,但缺少基本的东西,如 CoverHorizontal。以上是关于如何更改presentViewController过渡动画的主要内容,如果未能解决你的问题,请参考以下文章