定制Segue正确的方法

时间:2015-11-04 20:31:33

标签: ios iphone swift segue

目前我尝试使用自定义segue,它应该是:

[目的地视图]应该在[源视图]后面,这个[源视图]应该从100%下调到0.1%然后移除,在动画时间[目的地视图]也应该在后台。
因此,您会看到[源视图]在[目标视图]前面变小并被删除。

这是我的代码:

import UIKit

class CustomSegueFromBigtoSmall: UIStoryboardSegue {

    override func perform() {

        let sourceVC = self.sourceViewController
        let destinationVC = self.destinationViewController

        sourceVC.view.addSubview(destinationVC.view)

        UIView.animateWithDuration(0.5, delay: 0.0, options: .CurveEaseInOut, animations: { () -> Void in

            sourceVC.view.transform = CGAffineTransformMakeScale(0.1, 0.1)

            }){ (finished) -> Void in

                destinationVC.view.removeFromSuperview()

                let time = dispatch_time(DISPATCH_TIME_NOW, Int64(0.001 * Double(NSEC_PER_SEC)))

                dispatch_after(time, dispatch_get_main_queue(), { () -> Void in
                    sourceVC.presentViewController(destinationVC, animated: false, completion: nil)
                })
        }

    }

}

现在我看到我的[源视图],立即成为我的[目的地视图]。
[目标视图]在黑色背景前变小。一旦它“小”,它就会显示为全屏。

1 个答案:

答案 0 :(得分:0)

我在iOS 9中这样做的方法是使用自定义segue实现进行演示(模态)segue。然后,您的自定义segue只需调用enumerable即可进行实际演示。但首先,segue将自己设置为目的地Account& Account::operator=(char *string){ for (int i; i < 10; i++) { cout << i; } return (*this); } ,并将其展示风格设置为super.perform()。现在,您只需要使用自己的转换委托和自己的UIPresentationController进行普通的自定义过渡动画,并且可以按顺序执行任何操作。