Swift2でMMDrawerControllerを使うサンプルは探せばいろいろ出てくるんですが、
サイドメニューから画面遷移を実装するサンプルがなく、探すのに少し手間取ったので、
記事にしておきます。
実際にコードを見たい方はこちら
[サンプルコード] (https://github.com/Synashida/MMDrawerSampleSwift2)
画面の構成
MainViewControllerから画面1・画面2へのSegueのId
画面1 = toView1
画面2 = toView2
となっています。
コードの要点は
AppDelegate.swift
LeftDrawerViewController.swiftの2点です。
AppDelegateはMMDrawerの実装が記述されています。
LeftDrawerViewControllerはMainViewのSegueを使うためのコードが記述されています。
以下はLeftDrawerViewControllerのコードの抜粋です。
@IBAction func toView1(sender: UIButton) {
toView("toView1")
}
@IBAction func toView2(sender: UIButton) {
toView("toView2")
}
func toView(segueId: String) {
let mainView = (self.mm_drawerController.centerViewController as! UINavigationController).childViewControllers[0] as! MainViewController
mainView.performSegueWithIdentifier(segueId,sender: nil)
let appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.centerContainer!.toggleDrawerSide(MMDrawerSide.Left,animated: true, completion:nil)
}
まず
let mainView = (self.mm_drawerController.centerViewController as! UINavigationController).childViewControllers[0] as! MainViewController
ここで、MainViewControllerを取得しています。
次に
mainView.performSegueWithIdentifier(segueId,sender: nil)
MainViewのperformSegueWithIdentifierを呼び出して、MainViewのSegueを利用します。