cozzin / SHSideMenu

πŸ” Simple side menu view controller

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SHSideMenu

Simple side menu view controller πŸ”

At a Glance

import SHSideMenu

let sideMenuViewController = SideMenuViewController(left: ExampleMenuViewController())

class ExampleMenuViewController: UIViewController, ContentViewChangable {
    viewTransition.onNext(UIViewController())
}

class ExampleContentViewController: UIViewController, SideMenuUsable {
    sideMenuAction.onNext(.open)
}

Installation

pod 'SHSideMenu', '~> 0.0.7'

Getting Started

// 1. Create SideMenuViewController
let sideMenuViewController = SideMenuViewController(left: ExampleMenuViewController())


// 2. ContentViewChangable
class ExampleMenuViewController: UIViewController, ContentViewChangable {

   var viewTransition: BehaviorSubject<UIViewController> = BehaviorSubject<UIViewController>(value: UINavigationController(rootViewController: ExampleContentViewController(backgroundColor: .blue))) // set first view controller

   func change(row: Int) {
        switch row {
        case 0:
            viewTransition.onNext(UINavigationController(rootViewController: ExampleContentViewController(backgroundColor: .blue)))
        case 1:
            viewTransition.onNext(UINavigationController(rootViewController: ExampleContentViewController(backgroundColor: .green)))
        case 2:
            viewTransition.onNext(UINavigationController(rootViewController: ExampleContentViewController(backgroundColor: .yellow)))
        case 3:
            viewTransition.onNext(UINavigationController(rootViewController: ExampleContentViewController(backgroundColor: .red)))
        default:
            break
        }
   }
}


// 3. SideMenuUsable
class ExampleContentViewController: UIViewController, SideMenuUsable {
    
    var sideMenuAction: PublishSubject<SideMenuAction> = PublishSubject<SideMenuAction>()

    func open() {
        sideMenuAction.onNext(.open)
    }

    func close() {
        sideMenuAction.onNext(.close)
    }
}

Screenshots

About

πŸ” Simple side menu view controller

License:MIT License


Languages

Language:Swift 71.7%Language:Ruby 28.3%