【问题标题】:Left Side Menu opens when Right Side Menu is Clicked in Swift在 Swift 中单击右侧菜单时会打开左侧菜单
【发布时间】:2017-08-29 02:44:25
【问题描述】:

我正在使用ENSideMenu Library 在我的 Swift 导航栏中创建菜单。我已经创建了导航栏的左侧菜单,但是当我创建了右侧菜单时。发生的情况是,当我单击包含用于显示右侧菜单的操作的右侧按钮时......改为显示左侧菜单。这是我当前的实现。

RightSideNavigationController

override func viewDidLoad() {

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let menu = storyboard.instantiateViewController(withIdentifier: "RightMenuTableViewController") as! RightMenuTableViewController

    sideMenu = ENSideMenu(sourceView: self.view, menuViewController: menu, menuPosition: ENSideMenuPosition.right)
    sideMenu?.menuWidth = 200
    view.bringSubview(toFront: navigationBar)
}

RightMenuTableViewController

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    var destView: UIViewController!
    if indexPath.row == 0 {
        destView = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
    } else {
          destView = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController

   }
   sideMenuController()?.setContentViewController(destView)

}

SideNavigationController

override func viewDidLoad() {

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let menu = storyboard.instantiateViewController(withIdentifier: "MenuTableViewController") as! MenuTableViewController
    sideMenu = ENSideMenu(sourceView: self.view, menuViewController: menu, menuPosition: ENSideMenuPosition.left)
    sideMenu?.menuWidth = 200
    view.bringSubview(toFront: navigationBar)
}

MenuTableViewController

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    var destinationViewController: UIViewController!



    if indexPath.section == 0{
        if indexPath.row == 0 {
            destinationViewController = storyboard.instantiateViewController(withIdentifier: "TopViewController") as! TopViewController
        } else if indexPath.row == 1 {
              destinationViewController = storyboard.instantiateViewController(withIdentifier: "MemberListViewController") as! MemberListViewController
        }
     }else {
         if indexPath.row == 0 {
             destinationViewController = storyboard.instantiateViewController(withIdentifier: "MemberRegisterViewController") as! MemberRegisterViewController

        } else if indexPath.row == 3 {
              destinationViewController = storyboard.instantiateViewController(withIdentifier: "UserRegistrationViewController") as! UserRegistrationViewController
        }

    }
    sideMenuController()?.setContentViewController(destinationViewController)

}

【问题讨论】:

  • 如果你只是将sidenavigation控制器的位置更改为ENSideMenuPosition.right然后看看它是从右边来的吗?
  • @3stud1ant3 是的,我知道我可以更改菜单的位置。但是,我的问题是当我有两个菜单时,只显示一个菜单。无论如何,如果我单击右侧或左侧菜单。
  • 你可以为你的右栏按钮显示 btn 操作的代码吗?
  • @3stud1ant3 我刚刚在菜单操作中调用了这个 toggleSideMenuView()

标签: swift uinavigationbar xcode8 navigationbar


【解决方案1】:

ENSideMenu 库目前不支持在同一页面中使用该库的 2 个菜单。这是根据ENSideMenu Library GitHub中发布的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    相关资源
    最近更新 更多