概要
-Swift3
-Xcode8
やること
Swift3で左右に画面遷移しようとした時、pushviewcontroller使うのって若干、手間なので、PresentsViewControllerで左右に画面遷移しようと思いました。
pushviewcontrollerを使うよりも安易に動くし、設定できることも多いので、こっちを使うほうがいいと思っています。
別個のストーリーボード間の繊維
例えばMain
ストーリーボードからSetting
という名前のストーリーボードに右遷移したい時は下記のように実装します。
//ストーリーボードをインスタンス化
let storyboard: UIStoryboard = UIStoryboard(name: "Setting", bundle: nil)
let nextView = storyboard.instantiateInitialViewController()
//右に遷移する
let transition = CATransition()
transition.duration = 0.5
transition.type = kCATransitionPush
//kCATransitionFromLeftにすれば左に遷移します
transition.subtype = kCATransitionFromRight
view.window!.layer.add(transition, forKey: kCATransition)
present(nextView!, animated: false, completion: nil)
同じストーリーボード間での遷移
Mainストーリーボードから同じストーリーボードに作られたビューコンへの遷移は下記のようにします。withIdentifierを"Storyboard IDから下記のように設定してください。画像ではApplicationInformationというビューコンに飛ぼうとしてます
let storyboard: UIStoryboard = self.storyboard!
let nextView = storyboard.instantiateViewController(withIdentifier: "ApplicationInformation")
let transition = CATransition()
transition.duration = 0.5
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromRight
view.window!.layer.add(transition, forKey: kCATransition)
present(nextView, animated: false, completion: nil)
参考
How to present view controller from right to left in iOS using Swift