我有一个unwind segue,我希望有一个自定义动画。
我有一个自定义的segue类:
import UIKit
import QuartzCore
class SegueFromRight: UIStoryboardSegue {
override func perform() {
let src: UIViewController = self.source
let dst: UIViewController = self.destination
let transition: CATransition = CATransition()
let timeFunc : CAMediaTimingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.duration = 0.25
transition.timingFunction = timeFunc
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromRight
src.navigationController!.view.layer.add(transition, forKey: kCATransition)
src.navigationController!.pushViewController(dst, animated: false)
}
}
我已经定义了unwind segue:
@IBAction func unwindToGameOver(sender: UIStoryboardSegue) {
}
按下按钮时调用segue:
@IBAction func backButtonPressed(_ sender: Any) {
performSegue(withIdentifier: "unwindToGameOver", sender: self)
}
这是unwind segue的界面构建器:
崩溃时“以NSException类型的未捕获异常终止”
自定义segue适用于show segue&当我删除它的类时,展开segue工作。
有什么想法吗?
答案 0 :(得分:2)
您正在使用展开segue并且您的自定义segue正在推动。但是导航控制器中的放松信号将是流行音乐,而不是推动。
坦率地说,现在你使用custom transitions,而不是继承segue,但是如果你把它改成pop,它就可以了。