我想實現一個自定義的塞格,它將從右向左帶動視圖控制器。問題是我的應用程序崩潰時,我按下按鈕,以執行segue到所需的控制器。我收到以下錯誤:與動畫從左到右的塞格
Could not create a segue of class '(null)'
我是如何實現它的? 我創建了一個新的類並覆蓋用下面的代碼的執行功能:
import UIKit
class CustomTransition: UIStoryboardSegue {
override func perform()
{
let src = self.source
let dst = self.destination
src.view.superview?.insertSubview(dst.view, aboveSubview: src.view)
dst.view.transform = CGAffineTransform(translationX: -src.view.frame.size.width, y: 0)
UIView.animate(withDuration: 0.25,
delay: 0.0,
options: UIViewAnimationOptions.curveEaseInOut,
animations: {
dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
},
completion: { finished in
src.present(dst, animated: false, completion: nil)
}
)
}
}
以我的故事板我有一個UIButtoon我使用自定義賽格瑞並列(由我CustomTransition類生成的一個)。當我運行該應用程序並點擊按鈕時,我的應用程序崩潰與上面發佈的錯誤。我不明白爲什麼它會崩潰。我發現網上的每篇文章都與我實施它的方式類似。
什麼是navigationController?你的sourceVC必須是UINavigationController嗎?如果源和目標只是兩個普通的UIViewControllers,就像原始問題一樣? – Cindeselia
@Cindeselia你可以從屬性'sourceVC.navigationController'訪問導航控制器。 – Astoria