Sidemenu 控制器菜单没有在 swift 中导航到相应的视图控制器请帮助

如何解决Sidemenu 控制器菜单没有在 swift 中导航到相应的视图控制器请帮助

我在名为 MenuVC 的 tableview 中创建了侧边菜单..

并且我创建了带有如下菜单按钮的自定义导航栏,并在每个视图控制器中调用

func setUpNavigationBar(){
    
    let menuImageView = UIImageView.init(image: #imageLiteral(resourceName: "menu8"))
    menuImageView.tintColor = .darkGray
    menuImageView.frame = CGRect(x:0.0,y:0.0,width:25,height:25.0)
    menuImageView.contentMode = .scaleAspectFit
    menuImageView.widthAnchor.constraint(equalToConstant: 25).isActive = true
    menuImageView.heightAnchor.constraint(equalToConstant: 25).isActive = true
    menuImageView.addGestureRecognizer(UITapGestureRecognizer(target: self,action: #selector(menuClick)))
    let btnMenu = UIBarButtonItem(customView: menuImageView)
    
    self.navigationItem.setLeftBarButton(btnMenu,animated: true)

  }
  @objc func menuClick(){
    print("menu revealed: \(self.sideMenuController?.isMenuRevealed)")
    if !(self.sideMenuController?.isMenuRevealed ?? false){
        self.sideMenuController?.revealMenu()
    }
  }

并在场景委托中

func scene(_ scene: UIScene,willConnectTo session: UIScenesession,options connectionoptions: UIScene.Connectionoptions) {

let menu = (StoryBoard.main).instantiateViewController(identifier: "MenuVC") as! MenuVC
window?.rootViewController = SideMenuController(contentViewController: mainVC,menuViewController: menu)
self.window?.makeKeyAndVisible()
}

在 MenuVC 中:

struct MenuModel{
var name : String?
var icon : UIImage?
var isSelect : Bool?
}

class MenuVC: UIViewController,UITableViewDelegate,UITableViewDataSource{



var arrMenu = [MenuModel(name: "Home",icon: nil,isSelect: true),MenuModel(name: "All Products",isSelect: false),MenuModel(name: "Shop by category",isSelect: false)]


func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
    return arrMenu.count
}

func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "MenuTableCell",for: indexPath) as! MenuTableCell

        cell.lblTitle.text = arrMenu[indexPath.row].name
    
    return cell
}

func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
    
    
    dispatchQueue.main.async {
        let from  = (self.sideMenuController?.contentViewController as? UINavigationController)
        if indexPath.section == 0{
            for i in 0..<self.arrMenu.count{self.arrMenu[i].isSelect = false}
            self.arrMenu[indexPath.row].isSelect = true
            tableView.reloadData()
            (self.sideMenuController?.isMenuRevealed ?? false) ? self.sideMenuController?.hideMenu() : nil
            switch indexPath.row {
            case 0:
                let signupVC = StoryBoard.main.instantiateViewController(identifier: "HomeVC") as! HomeVC
                self.navigationController?.pushViewController(signupVC,animated: true)
                break
            case 1:
                let signupVC = StoryBoard.main.instantiateViewController(identifier: "AllProductsVC") as! AllProductsVC
                self.navigationController?.pushViewController(signupVC,animated: true)
                break
            case 2:
                let signupVC = StoryBoard.main.instantiateViewController(identifier: "CategoryVC") as! CategoryVC
                self.navigationController?.pushViewController(signupVC,animated: true)
                break
            default:
                return
            }
        }else{
           
        }
    }

使用代码我可以打开菜单,但是如果我点击 All Products 菜单,那么它不会转到那个视图控制器..我应该如何从侧菜单导航..请帮忙

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?