説明
画面遷移の為のカスタムクラスを作ってみました。引数に自分のStoryboardの名前を入れると簡単にpresentviewController
で画面遷移ができます! New > File > Swift File
を選んでカスタムクラスを実装して使います。
注意
ちなみに、このクラスでは、同じMain Storyboard
の中にあるViewには飛べません。あくまでも別のStoryboard
にあるViewController
にしか飛べません。(不便ですみません)同じStoryboard
の中にあるViewController
に飛ぶ為のクラスはまた暇を見つけて作ろうと思いました。
使い方

//右に遷移
CustomScreenTransition().Right(StoryboardName: "YourStoryboardName")
//左に遷移
CustomScreenTransition().Left(StoryboardName: "YourStoryboardName")
実装
import UIKit
public class CustomScreenTransition: UIViewController {
public func Right(StoryboardName: String) {
let storyboard: UIStoryboard = UIStoryboard(name: (StoryboardName), bundle: nil)
let nextView = storyboard.instantiateInitialViewController()
let transition = CATransition()
transition.duration = 0.5
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromRight
let appDelegate = UIApplication.shared.delegate as? AppDelegate
appDelegate?.window?.layer.add(transition, forKey: kCATransition)
appDelegate?.window?.rootViewController = nextView!
}
public func Left(StoryboardName: String) {
let storyboard: UIStoryboard = UIStoryboard(name: StoryboardName, bundle: nil)
let nextView = storyboard.instantiateInitialViewController()
let transition = CATransition()
transition.duration = 0.5
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromLeft
let appDelegate = UIApplication.shared.delegate as? AppDelegate
appDelegate?.window?.layer.add(transition, forKey: kCATransition)
appDelegate?.window?.rootViewController = nextView!
}
}