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
- For iOS 10+ projects with CocoaPods:
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)
}
}