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)