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)