Contents

william-weng/wwsidemenuviewcontroller

- [Customizable side menu of the screen.](https://github.com/kukushi/SideMenu)

[Introduction - 簡介](https://swiftpackageindex.com/William-Weng)

[WWSideMenuViewController] [WWSideMenuViewController] [WWSideMenuViewController]

[Installation with Swift Package Manager](https://medium.com/彼得潘的-swift-ios-app-開發問題解答集/使用-spm-安裝第三方套件-xcode-11-新功能-2c4ffcf85b4b)

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

[相關設定](https://ezgif.com/video-to-webp)

[WWSideMenuViewController] [WWSideMenuViewController] [WWSideMenuViewController]

可用函式

|函式|說明| |-|-| |initSettingWithSegue(:displayPosition:baseColor:delegate:)|初始化設定 (使用Segue)| |initSettingWithViewController(:displayPosition:baseColor: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 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), baseColor: .clear, delegate: self)
    }
}

extension SideMenuViewController: WWSideMenuViewControllerDelegate {
    
    func sideMenu(_ sideMenuController: WWSideMenuViewController, state: MenuState) {
        print(state)
    }
    
    func sideMenu(_ sideMenuController: WWSideMenuViewController, from previousViewController: UIViewController?, to nextViewController: UIViewController) {
        print("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() }
}

Package Metadata

Repository: william-weng/wwsidemenuviewcontroller

Default branch: main

README: README.md