我在我的项目中使用了“LGSideMenuController”。但它无法从我的所有 View Controller 打开。我想在我项目的所有 View Controller 中打开侧边菜单。但现在我可以从我的“HomeViewcontroller”打开它,而且只能打开一次。
在我的 AppDelegete.swift 文件中,我创建函数并在 otpviewcontroller 中调用它。
func createSideMenu(){
let storyBoard = UIStoryboard.init(name: "Main", bundle: nil)
let rootviewcontroller = storyBoard.instantiateViewController(withIdentifier: "HomeVC") as! HomeVC
let navigation = UINavigationController.init(rootViewController: rootviewcontroller)
let sideMenuVC = storyBoard.instantiateViewController(withIdentifier: "SideMenuVC") as! SideMenuVC
let sideMenuController = LGSideMenuController(rootViewController: navigation,
leftViewController: sideMenuVC,
rightViewController: nil)
sideMenuController.leftViewWidth = 280.0
sideMenuController.leftViewPresentationStyle = .scaleFromBig
self.window?.rootViewController = sideMenuController
self.window?.makeKeyAndVisible()
}
在我的“Homeviewcontroller”和其他 View Controller 中,我像这样打开侧边菜单。
@IBAction func sideMenuAction(_ sender: UIBarButtonItem) {
self.sideMenuController?.showLeftView(animated: true, completionHandler: nil)
}
它只在 HomeViewcontroller 中打开,但我想在我项目的所有 Viewcontroller 中打开它。我是 swift 的新手。请帮我。谢谢。
最佳答案
您可以使用与在“HomeViewcontroller”中相同的方法打开“LGSideMenuController”。
假设在另一个 View Controller 中,您想在单击按钮事件时打开“LGSideMenuController”,那么代码如下所示
@IBAction func openSideMenu(_ sender: Any) {
self.sideMenuController?.showLeftView(animated: true, completionHandler: nil)
}
编辑答案
我检查了您的代码,发现您试图在“LGSideMenuController”上呈现另一个 View Controller 屏幕,而不是使用推送转换。
请如下更改SideMenuVC Controller 中的代码
@IBAction func eventsAction(_ sender: Any) {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "EventsVC") as! EventsVC
//let navigationController = UINavigationController(rootViewController: vc)
//self.present(navigationController, animated: true, completion: nil)
self.sideMenuController?.hideLeftViewAnimated()
self.sideMenuController?.rootViewController?.show(vc, sender: self)
}
在上面的代码中,我先隐藏了侧边菜单,然后在侧边菜单 Controller 中推送“EventsVC” View Controller 。请在其他按钮操作上应用相同的代码。
希望对您有所帮助。
关于swift - 如何打开从所有 View Controller 打开的 'LGSideMenuController' 侧边菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56625025/