Swift - 创建自定义推送segue

时间:2015-08-10 00:15:16

标签: ios swift

我想创建一个动画从左到右移动的segue。我需要有关自定义segue代码的帮助。

感谢。

2 个答案:

答案 0 :(得分:3)

我自己想出了问题的答案。

当我使用segue创建时,我必须将其设为"custom"而不是"show"。 然后,我必须创建一个控制我的自定义segue(UIStoryBoardSegue文件)的新文件。然后我将此代码添加到该文件中:

override func perform() {
        var firstVCView = self.sourceViewController.view as UIView!
        var secondVCView = self.destinationViewController.view as UIView!

        // Get the screen width and height.
        let screenWidth = UIScreen.mainScreen().bounds.size.width
        let screenHeight = UIScreen.mainScreen().bounds.size.height

        // Specify the initial position of the destination view.
        secondVCView.frame = CGRectMake(screenWidth, 0.0, screenWidth, screenHeight)

        // Access the app's key window and insert the destination view above the current (source) one.
        let window = UIApplication.sharedApplication().keyWindow
        window?.insertSubview(secondVCView, aboveSubview: firstVCView)

        // Animate the transition.
        UIView.animateWithDuration(0.4, animations: { () -> Void in

                firstVCView.frame = CGRectOffset(firstVCView.frame, -screenWidth, 0.0)
                secondVCView.frame = CGRectOffset(secondVCView.frame, -screenWidth, 0.0)

            }) { (Finished) -> Void in
                self.sourceViewController.presentViewController(self.destinationViewController as! UIViewController,
                    animated: false,
                    completion: nil)
        }
    }
无论如何,谢谢科尔。

答案 1 :(得分:0)

虽然你的问题非常广泛。我建议你查看Spring这是一个非常好的动画库。玩弄示例项目。其中一个实际上是一个可以自定义的左右移动。我可以在没有任何背景的情况下详细说明。