WWSideMenuViewController

Swift-5.6 iOS-14.0 Swift Package Manager-SUCCESS LICENSE

Introduction - 简介

WWSideMenuViewController WWSideMenuViewController WWSideMenuViewController

Installation with Swift Package Manager

dependencies: [
    .package(url: "https://github.com/William-Weng/WWSideMenuViewController.git", .upToNextMajor(from: "1.4.4"))
]

相关设置

WWSideMenuViewController WWSideMenuViewController WWSideMenuViewController

可用函数

函数 说明
initSettingWithSegue(_:displayPosition:visualEffectStyle:delegate:) 初始化设定 (使用Segue)
initSettingWithViewController(_:displayPosition:visualEffectStyle:delegate:) 初始化设定 (使用UIViewController)
displayMenu(with:duration:curve:) 显示侧边菜单
dismissMenu(with:duration:curve:) 隐藏侧边菜单
backFirstItemViewController(with:duration:curve:) 回到一开始的页面 (第一页)
changeItemViewController(_:with:duration:curve:) 切换页面

WWSideMenuViewControllerDelegate

函数 说明
sideMenu(_:state:) 侧边菜单的动画状态
sideMenu(_:from:to:) 侧边菜单的换页顺序

Example

import UIKit
import WWPrint
import WWSideMenuViewController

final class SideMenuViewController: WWSideMenuViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        initSettingWithSegue(delegate: self)
        // initSettingWithSegue(displayPosition: .back(256), delegate: self)
        // initSettingWithSegue(displayPosition: .scale(365, 0.8, 32.0), visualEffectStyle: nil, delegate: self)
    }
}

extension SideMenuViewController: WWSideMenuViewControllerDelegate {
    
    func sideMenu(_ sideMenuController: WWSideMenuViewController, state: MenuState) {
        wwPrint(state)
    }
    
    func sideMenu(_ sideMenuController: WWSideMenuViewController, from previousViewController: UIViewController?, to nextViewController: UIViewController) {
        wwPrint("from: \(String(describing: previousViewController)) to: \(nextViewController)")
    }
}
import UIKit
import WWSideMenuViewController

class MenuViewController: WWMenuViewController {
    
    lazy var tabViewController: UIViewController = { self.storyboard!.instantiateViewController(withIdentifier: "Tab") }()
    
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesBegan(touches, with: event)
        _ = dismissMenu()
    }
    
    @IBAction func dimissMenu(_ sender: UIButton) { _ = dismissMenu() }
    @IBAction func changePageViewController(_ sender: UIButton) { _ = backFirstItemViewController() }
    @IBAction func changeTabViewController(_ sender: UIButton) { _ = changeItemViewController(tabViewController) }
}
import UIKit
import WWSideMenuViewController

class Page1ViewController: WWItemViewController {
    @IBAction func diplayMenu(_ sender: UIBarButtonItem) { _ = displayMenu() }
}

class Tab1ViewController: WWItemViewController {
    @IBAction func diplayMenu(_ sender: UIButton) { _ = displayMenu() }
}

class Tab2ViewController: WWItemViewController {
    @IBAction func diplayMenu(_ sender: UIButton) { _ = displayMenu() }
}