返回 导航

Swift

hangge.com

Swift - 第三方侧栏菜单组件SideMenu使用详解6(菜单显示、隐藏响应)

作者:hangge | 2019-03-28 08:10
    有时我们需要在侧栏菜单显示、或者消失时自动进行一些操作,那么继承 UISideMenuNavigationControllerDelegate 协议即可。当侧栏菜单“即将要显示”、“显示完毕”、“即将要隐藏”、“隐藏完毕”时都会触发相应的方法。

1,样例代码

我们让主视图控制器继承 UISideMenuNavigationControllerDelegate 协议,并在协议方法中打印相关信息。
注意:菜单无论是通过代码打开关闭,还是使用手势来打开关闭,这 4 个协议方法都是会触发的。
import UIKit
import SideMenu

// 主视图控制器
class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 定义左侧栏菜单
        let leftMenu = UISideMenuNavigationController(rootViewController: MenuViewController())
        leftMenu.isNavigationBarHidden = true //侧栏菜单不显示导航栏
        SideMenuManager.default.menuLeftNavigationController = leftMenu
    }
    
    // 显示左侧菜单
    @IBAction func showLeftMenu(_ sender: Any) {
        // 显示侧栏菜单
        self.present(SideMenuManager.default.menuLeftNavigationController!, animated: true,
                     completion: nil)
    }
}


extension ViewController: UISideMenuNavigationControllerDelegate {
    
    // 侧栏菜单将要显示时触发
    func sideMenuWillAppear(menu: UISideMenuNavigationController, animated: Bool) {
        print("菜单将要显示! (是否有动画: \(animated))")
    }
    
    // 侧栏菜单显示完毕时触发
    func sideMenuDidAppear(menu: UISideMenuNavigationController, animated: Bool) {
        print("菜单显示完成! (是否有动画: \(animated))")
    }
    
    // 侧栏菜单将要隐藏时触发
    func sideMenuWillDisappear(menu: UISideMenuNavigationController, animated: Bool) {
        print("菜单将要隐藏!(是否有动画: \(animated))")
    }
    
    // 侧栏菜单隐藏完毕时触发
    func sideMenuDidDisappear(menu: UISideMenuNavigationController, animated: Bool) {
        print("菜单隐藏完毕!(是否有动画: \(animated))")
    }
}

2,效果图

下面我们展开又收起菜单后,控制台输出结果如下:
           
评论

全部评论(0)

回到顶部