Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift ENSideMenu从UITableViewController导航到DetailsViewController时,它不会再次打开_Swift_Uitableview_Slidingmenu_Detailsview_Navigationcontroller - Fatal编程技术网

Swift ENSideMenu从UITableViewController导航到DetailsViewController时,它不会再次打开

Swift ENSideMenu从UITableViewController导航到DetailsViewController时,它不会再次打开,swift,uitableview,slidingmenu,detailsview,navigationcontroller,Swift,Uitableview,Slidingmenu,Detailsview,Navigationcontroller,情景: 我有(TableViewController)的MainViewController、TableViewController和DetailsViewController 我正在使用开源库获得滑动菜单功能,教程可以在这里找到:滑动菜单与 当我将本教程应用于我的项目时,我可以很容易地获得我想要的滑动菜单,您可以从 当我点击第二个视图时,一个TableViewController会显示列表数据,在这里,当我选择一行时,它会导航到details View controller,当我从detail

情景:

我有(TableViewController)的MainViewController、TableViewController和DetailsViewController

我正在使用开源库获得滑动菜单功能,教程可以在这里找到:滑动菜单与

当我将本教程应用于我的项目时,我可以很容易地获得我想要的滑动菜单,您可以从

当我点击第二个视图时,一个TableViewController会显示列表数据,在这里,当我选择一行时,它会导航到details View controller,当我从details View controller返回TableViewController时,问题就开始了。滑动菜单不会再次打开

以下是我的TableViewController didSelectRowAtIndexPath代码:

      switch (indexPath.section) {

        case 0:


            if (self.myInvoicesUnPaid.isEmpty){

             self.displayAlertMessage("Ödenmemiş faturanız bulunmamaktadır.")

            } else if (!self.myInvoicesUnPaid.isEmpty){

                // Get Cell Label
                let indexPath = tableView.indexPathForSelectedRow;

                //let currentCell = tableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell!;

                let storyboard = UIStoryboard(name: "Main", bundle: nil)

                let viewController = storyboard.instantiateViewControllerWithIdentifier("viewControllerIdentifer") as! invoiceDetailsViewController

                viewController.passedValue = self.myUnpaidInvoicesDetails[(indexPath?.row)!]

                viewController.isPaid = false

                self.presentViewController(viewController, animated: true , completion: nil)




            }


        break

        case 1:

            // Get Cell Label
            let indexPath = tableView.indexPathForSelectedRow;

            let storyboard = UIStoryboard(name: "Main", bundle: nil)

            let viewController = storyboard.instantiateViewControllerWithIdentifier("viewControllerIdentifer") as! invoiceDetailsViewController

            viewController.passedValue = self.myPaidInvoicesDetails[(indexPath?.row)!]

            viewController.isPaid = true




            self.presentViewController(viewController, animated: true , completion: nil)



        break

        default: break

  }  
以下是导航回TableViewController时的detailsViewController代码

 func backButtonPressed (sender:UIButton!){


        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewControllerWithIdentifier("InvoicesTableViewController") as! InvoicesTableViewController
        vc.navigationController?.navigationBarHidden = false

        vc.navigationController?.setNavigationBarHidden(false, animated:true)

        performSegueWithIdentifier("backToMyInvoices", sender: self)


    }
class SlideNavigationController: ENSideMenuNavigationController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.

        let storyBoard = UIStoryboard(name: "Main", bundle: nil)

       let menu =  storyBoard.instantiateViewControllerWithIdentifier("LeftSideViewController") as! LeftSideMenuTableView

        sideMenu = ENSideMenu(sourceView: self.view, menuViewController: menu, menuPosition: ENSideMenuPosition.Left )
        sideMenu?.menuWidth = 220

        view.bringSubviewToFront(navigationBar)

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.





    }
我的最后一段代码表示来自EnsideNunavigationController的教程代码

 func backButtonPressed (sender:UIButton!){


        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewControllerWithIdentifier("InvoicesTableViewController") as! InvoicesTableViewController
        vc.navigationController?.navigationBarHidden = false

        vc.navigationController?.setNavigationBarHidden(false, animated:true)

        performSegueWithIdentifier("backToMyInvoices", sender: self)


    }
class SlideNavigationController: ENSideMenuNavigationController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.

        let storyBoard = UIStoryboard(name: "Main", bundle: nil)

       let menu =  storyBoard.instantiateViewControllerWithIdentifier("LeftSideViewController") as! LeftSideMenuTableView

        sideMenu = ENSideMenu(sourceView: self.view, menuViewController: menu, menuPosition: ENSideMenuPosition.Left )
        sideMenu?.menuWidth = 220

        view.bringSubviewToFront(navigationBar)

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.





    }

如蒙帮助,我们将不胜感激。。我使用这个滑动菜单已经有好几个星期了,我可以在整个应用程序中使用它。。即使在ViewController弹出之后

使用根视图控制器-MainViewController初始化ENNavigationViewController(您可以使用“示例”文件夹中的示例)

要显示下一个视图控制器时:

self.navigationController?.pushViewController(…)

或者使用示例中EnslideMenugation控制器上的方法:


setContentViewController(contentViewController:UIViewController)

我没有尝试你的答案对不起:)我已经按自己的方式做了