如何更改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,但缺少基本的东西,如 CoverHorizo​​ntal。

以上是关于如何更改presentViewController过渡动画的主要内容,如果未能解决你的问题,请参考以下文章

xcode在presentViewController之后更改标签的文本

如何在封面视图和主页中使用“presentViewController”

如何使用 presentViewController 呈现 iOS 键盘扩展

如何使用委托给 self 调用 presentViewController?

如何在 presentViewController 之后禁用 SFSafariViewController 中的滑动手势

将 presentViewController 与 UITabbarController 一起使用时如何传递数据