Swift 如何打开';LGSideMenuController';侧菜单是否从所有viewcontroller打开?

Swift 如何打开';LGSideMenuController';侧菜单是否从所有viewcontroller打开?,swift,side-menu,Swift,Side Menu,我在项目中使用了“LGSideMenuController”。但它无法从我的all viewcontroller打开。我想在项目中的所有viewcontroller中打开侧菜单。但现在我只能从我的“HomeViewcontroller”打开它一次 在我的AppDelegete.swift文件中,我创建了一个函数,并在otpviewcontroller中调用了它 func createSideMenu(){ let storyBoard = UIStoryboard.init(name:

我在项目中使用了“LGSideMenuController”。但它无法从我的all viewcontroller打开。我想在项目中的所有viewcontroller中打开侧菜单。但现在我只能从我的“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”和其他ViewController中,我像这样打开侧菜单

@IBAction func sideMenuAction(_ sender: UIBarButtonItem) {

    self.sideMenuController?.showLeftView(animated: true, completionHandler: nil)
}

它只在HomeViewcontroller中打开,但我想在项目的所有Viewcontroller中打开它。我是新来的斯威夫特。请帮帮我。谢谢。

您可以使用与在“HomeViewcontroller”中相同的方法打开“LGSideMenuController”

假设在另一个viewcontroller中,您希望在单击按钮事件时打开“LGSideMenuController”,则代码如下所示

@IBAction func openSideMenu(_ sender: Any) {
        self.sideMenuController?.showLeftView(animated: true, completionHandler: nil)
    }
编辑答案

我检查了您的代码,发现您试图在“LGSideMenuController”上显示另一个viewcontroller屏幕,而不是使用推送转换

请在SideMenuVC控制器中更改代码,如下所示

@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)
}
在上面的代码中,我首先隐藏侧菜单,然后在侧菜单控制器中按下“EventsVC”视图控制器。请在其他按钮操作上应用相同的代码


希望有帮助。

您可以使用与在“HomeViewcontroller”中相同的方法打开“LGSideMenuController”

假设在另一个viewcontroller中,您希望在单击按钮事件时打开“LGSideMenuController”,则代码如下所示

@IBAction func openSideMenu(_ sender: Any) {
        self.sideMenuController?.showLeftView(animated: true, completionHandler: nil)
    }
编辑答案

我检查了您的代码,发现您试图在“LGSideMenuController”上显示另一个viewcontroller屏幕,而不是使用推送转换

请在SideMenuVC控制器中更改代码,如下所示

@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)
}
在上面的代码中,我首先隐藏侧菜单,然后在侧菜单控制器中按下“EventsVC”视图控制器。请在其他按钮操作上应用相同的代码


希望有帮助。

var image1=UIImage.init(名为:“nav_icon3.png”)image1=image1?。使用RenderingMode(.alwaysOriginal)让LeftBarButtonim=uiBarButtonim.init(图像:image1,样式:。普通,目标:self,操作:#选择器(点击菜单))self.navigationItem.leftBarButtonItem=leftBarButtonItem@objc func clickOnMenu(){self.sideMenuController?.showLeftView(动画:true,completionHandler:nil)}是否可以从其他视图控制器打开侧菜单?否。这就是问题所在。我只能从HomeVC打开侧菜单。但另一个我不是。我认为在otherviewcontroller only中,我必须将此代码仅放在self.sideMenuController?上。showLeftView(动画:true,completionHandler:nil)是否可以单击添加到controller中的左栏按钮项?是。那就走这条线吧。self.sideMenuController?.showLeftView(动画:true,completionHandler:nil)但未执行。var image1=UIImage.init(名为:“nav_icon3.png”)image1=image1?.withRenderingMode(.alwaysOriginal)让LeftBarButtonim=uiBarButtonim.init(图像:image1,样式:。普通,目标:self,操作:#选择器(clickOnMenu))self.navigationItem.leftBarButtonItem=leftBarButtonItem@objc func clickOnMenu(){self.sideMenuController?.showLeftView(动画:true,completionHandler:nil)}是否可以从其他视图控制器打开侧菜单?否。这就是问题所在。我只能从HomeVC打开侧菜单。但另一个我不是。我认为在otherviewcontroller only中,我必须将此代码仅放在self.sideMenuController?上。showLeftView(动画:true,completionHandler:nil)是否可以单击添加到controller中的左栏按钮项?是。那就走这条线吧。self.sideMenuController?.showLeftView(动画:true,completionHandler:nil)但未执行。嘿,兄弟,你能帮我解决LG sidemen吊舱的问题吗?我是swift的新手嘿,兄弟,你能帮我解决LG sidemen吊舱的问题吗