禁用segue动画

cod*_*ude 13 ios uistoryboard segue uistoryboardsegue swift

我想在我的故事板中显示(例如推送)segues,以连接我的viewcontrollers和我的导航控制器.然后,viewcontrollers上的导航栏将正确显示.例如:使用show detail或present modaly,导航栏将消失

但我不想要segue动画.Xcode发出如下警告:"在iOS 9.0之前禁用segue动画"

我想要iOS 7.0或8.0的部署目标

我怎么解决这个问题?

提前致谢.

Arb*_*tur 26

您可以在执行segue之前和再次启用之后禁用动画.

UIView.setAnimationsEnabled(false)
self.performSegueWithIdentifier("next", sender: nil)
UIView.setAnimationsEnabled(true)
Run Code Online (Sandbox Code Playgroud)

这将在没有动画的情况下执行segue.

  • 这不适合我.我不得不只使用'false'语句,而在viewDidDisappear中我必须将动画设置回'true'. (10认同)

Ork*_*ade 7

单击Main.Storyboard中的segue箭头,然后:

在此处输入图片说明

查看 Animates

  • 我不确定您为什么收到这么多否定票,但这对我有用! (3认同)

小智 6

如果您想在代码中切换动画状态,您可以在故事板中复制您的segue,使用不同的标识符以及相同的起点和目的地。然后使其中一个主题动画化,另一个不动画化。然后,使用所需的标识符执行performSegue。

class MyNavigationController : UINavigationController {

    var firstTransitionAnimated : Bool = true // or false, based on initialization


    override func viewDidLoad() {
        super.viewDidLoad()
        var properSegue = firstTransitionAnimated ? "animated_segue" : "not_animated_segue"
        self.performSegue(withIdentifier: properSegue, sender: self)
    }
}
Run Code Online (Sandbox Code Playgroud)