推送到没有以前控制器的新视图控制器(但动画)

Posted

技术标签:

【中文标题】推送到没有以前控制器的新视图控制器(但动画)【英文标题】:Push to a new view controller without previous controllers (but animated) 【发布时间】:2016-04-16 14:52:28 【问题描述】:

我想从 ViewController1 推送到 ViewController2,但导航堆栈中没有 ViewController1。 (动画)

这不会有动画:

self.navigationController?.viewControllers = [ViewController2()]

这也不会有动画:

UIView.animateWithDuration(0.3) 
        self.navigationController?.viewControllers = [ViewController2()]
    

这也没有任何动画:

self.navigationController?.popToRootViewControllerAnimated(false)
self.navigationController?.pushViewController(ViewContorller2(), animated: true)

动画从 ViewController2 推送的正确方法是什么(没有返回按钮到视图控制器 1)?

【问题讨论】:

你想推两次?例如从 currentViewController 到 newViewController1 然后快速到 newViewController2 而无需为 newViewController1 设置动画。 不,我的意思是我想用动画推动,从 VC1 到 VC2,没有后退按钮。我在下面找到了答案。 【参考方案1】:

我找到了办法:

self.navigationController?.setViewControllers([ViewController2()],animated:true)

【讨论】:

【参考方案2】:

下面试试这个,我在手机上测试,没问题。 func btnClickedHandler() 是当 touch up inside 事件发生时的按钮点击处理程序。

func btnClickedHandler()

    self.navigationController?.pushViewController(ViewController2(), animated: true)

    self.navigationController?.viewControllers.removeFirst()

【讨论】:

以上是关于推送到没有以前控制器的新视图控制器(但动画)的主要内容,如果未能解决你的问题,请参考以下文章

将视图控制器推送到另一个视图控制器时如何处理 UIParallaxDimmingView?

如何将其他视图控制器推送到 NavigationController 但保留 TabBar?

快速将 UIImage 推送到下一个视图控制器

将另一个视图控制器推送到 UITabBarController 视图中

将视图推送到当前根视图下方的堆栈中

如何从 UITableView 推送到新的 viewController?