【问题标题】:how to open 'LGSideMenuController' side menu open from all viewcontroller?如何从所有视图控制器打开“LGSideMenuController”侧边菜单?
【发布时间】:2019-10-30 16:13:55
【问题描述】:

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

@IBAction func sideMenuAction(_ sender: UIBarButtonItem) {

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

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

【问题讨论】:

  • 嘿兄弟你能帮我解决一下 LG Sidemen pods 我是 swift 新手

标签: swift side-menu


【解决方案1】:

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

假设在另一个视图控制器中,您想在单击按钮事件时打开“LGSideMenuController”,然后代码将如下所示

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

编辑答案

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

请在 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)
}

在上面的代码中,我先隐藏了sidemenu,然后在sideMenuController 中推送“EventsVC”视图控制器。请在其他按钮操作上应用相同的代码。

希望对你有帮助。

【讨论】:

  • var image1 = UIImage.init(named: "nav_icon3.png") image1 = image1?.withRenderingMode(.alwaysOriginal) let leftBarButtonItem = UIBarButtonItem.init(image: image1, style: .plain, target :自我,动作:#selector(clickOnMenu)) self.navigationItem.leftBarButtonItem = leftBarButtonItem。 @objc func clickOnMenu() { self.sideMenuController?.showLeftView(animated: true, completionHandler: nil) }
  • 你能从其他视图控制器打开侧边菜单吗?
  • 没有。那就是问题所在。我只能从 HomeVC 打开侧边菜单。但其他视图控制器我不是。我认为只有在 otherviewcontroller 中我必须只放置这段代码 self.sideMenuController?.showLeftView(animated: true, completionHandler: nil)
  • 你可以点击你在控制器中添加的左栏按钮项吗?
  • 是的。然后也走这条线。 self.sideMenuController?.showLeftView(animated: true, completionHandler: nil) 但没有执行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多