简体   繁体   中英

Left Side Menu opens when Right Side Menu is Clicked in Swift

I'm using ENSideMenu Library for creating the menus in my navigation bar in Swift. I already created the left side menu of the navigation bar, but then when I created the right side. What happen is, when I click the right side button that contains the action for showing the right menu... the left side menu is shown instead. Here's my current implementation.

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)

}

The ENSideMenu Library currently doesn't support 2 menus which uses the library in the same page. This is according to the issues posted in ENSideMenu Library GitHub

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM