Side Drawer Navigation Controller similar to Android
Clone or download
ykyouhei Merge pull request #122 from ripplek/master
fix drawer dismiss fail
Latest commit b626bdb Oct 31, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Example Migrate to Swift 4.2 Oct 4, 2018
KYDrawerController.xcodeproj Migrate to Swift 4.2 Oct 4, 2018
KYDrawerController Merge pull request #122 from ripplek/master Oct 31, 2018
.gitignore Initial commit May 15, 2015
.swift-version Update swift version to 4.2 Oct 4, 2018
KYDrawerController.podspec Update versions Oct 31, 2018
LICENSE Initial commit May 15, 2015
README.md Update README Oct 29, 2017

README.md

KYDrawerController

Carthage compatible Pod Version Pod Platform Pod License Language Swift version

KYDrawerController is a side drawer navigation container view controller similar to Android.

  • Storyboard Support
  • AutoLayout Support

image.png storyboard.pngdrawer.gif

Installation

CocoaPods

KYDrawerController is available on CocoaPods. Add the following to your Podfile:

pod 'KYDrawerController'

Manually

Just add the Classes folder to your project.

Usage

(see sample Xcode project in /Example)

Code

import UIKit
import KYDrawerController

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        
        let mainViewController   = MainViewController()
        let drawerViewController = DrawerViewController()
        let drawerController     = KYDrawerController()
        drawerController.mainViewController = UINavigationController(
            rootViewController: mainViewController
        )
        drawerController.drawerViewController = drawerViewController
        
        /* Customize
        drawerController.drawerDirection = .Right
        drawerController.drawerWidth     = 200
        */
       
        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        window?.rootViewController = drawerController
        window?.makeKeyAndVisible()
        
        return true
    }

Storyboard

  1. Set the KYDrawerController to Custom Class of Initial ViewController.

usage1.png

  1. Connects the KYEmbedDrawerControllerSegue to DrawerViewController from KYDrawerController

usage2.png

  1. Connects the KYEmbedMainControllerSegue to DrawerViewController from KYDrawerController

usage3.png

  1. Set the SegueIdentifiers to inspector of KYDrawerController.

usage4.png

Open/Close Drawer

func setDrawerState(state: DrawerState, animated: Bool)

Delegate

optional func drawerController(_ drawerController: KYDrawerController, willChangeState state: KYDrawerController.DrawerState)
optional func drawerController(_ drawerController: KYDrawerController, didChangeState state: KYDrawerController.DrawerState)

Objective-C version

https://github.com/AustinChou/KYDrawerController-ObjC

License

This code is distributed under the terms and conditions of the MIT license.