AKSwiftSlideMenuでiOSアプリにドロワーメニューを追加するチュートリアル

シンプルにドロワーメニューを追加できるライブラリを探していたら、これがよさそうだったのでチュートリアルをやってみました。

以下のリンクからSwift4のファイルをダウンロードしてXcodeで開いておきます。

github.com

次に、新規にXcodeでプロジェクトファイルを作成します。

  • BaseViewController.swiftとMenuViewController.swiftをコピーします。
  • Main.storyboardからMenu View Controllerをコピーします。
  • View Controllerを選択してから、Editor > Embed in > Navigation Controllerを選択します。
  • ViewControllerの基底クラスをUIViewControllerからBaseViewContollerに変更します。

この時点でViewController.swiftは以下のようになっています。

import UIKit

class ViewController: BaseViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.addSlideMenuButton()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

これでメニューは動作するようになりましたが、メニューを選択しても動作しない状態なので、次に画面の切り替えなどを設定していきます。

  • Assets.xcassetsからCameraIcon、HomeIcon、PlayIconをコピーします。
  • Main.storyboardにView Controllerを追加して、StoryBoard IDとRestoration IDを指定します。
  • New FileでCocoa Touch Classを追加して、ファイル名はPlayVC.swiftにします。
  • さきほど追加したMain.storyboardにView ControllerとPlayVC.swiftを関連付けます。

ViewController.swiftは以下のようになります。

import UIKit

class ViewController: BaseViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.addSlideMenuButton()
        self.title = "Home"
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

PlayVC.swiftは以下のようになります。

import UIKit

class PlayVC: BaseViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        self.addSlideMenuButton()
        self.title = "Play"
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */
}

Main.storyboardでHome画面からPlay画面にSegue (Show)を追加します。

ナビゲーションバーの色を変更するためには、Main.storyboardのNavigation ControllerのBar Tintで色を指定します。