ENSideMenu从UITableViewController导航到DetailsViewController时不会再次打开swift

时间:2016-03-12 22:26:47

标签: swift uitableview slidingmenu detailsview navigationcontroller

情景:

我有一个MainViewController,TableViewController和DetailsViewController(TableViewController)

我正在使用开源库获取滑动菜单功能,可在此处找到教程:使用ENSideMenuNavigationController滑动菜单

当我将这个教程应用到我的项目时,我可以轻松获得我想要的滑动菜单,你可以从image

当我点击Second View时,TableViewController会出现列表数据,当我选择一行时,它会开始导航到详细信息视图控制器,当我从detailsviewcontroller返回到TableViewController时,滑动菜单将不再打开。

这是我的TableViewController didSelectRowAtIndexPath代码:

 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)


    }

当我导航回我的TableViewController

时,这是detailsViewController代码
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.





    }

我的代码的最后一段代表来自ENSideMenuNavigationController的教程代码

 public String getStringImage(Bitmap bmp) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte[] imageBytes = baos.toByteArray();
    String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
    return encodedImage;
}

@Override
        protected String doInBackground(Bitmap... params) {
            Bitmap bitmap = params[0];
            String uploadImage = getStringImage(bitmap);
            Log.i("UploadImage ----- ",uploadImage);
            HashMap<String, String> data = new HashMap<>();
            data.put(UPLOAD_KEY, uploadImage);

            String result = rh.sendPostRequest(UPLOAD_URL, data);
            Log.i("Result *****: ", result);
            return result;
        }

请任何帮助将不胜感激..已经有几个星期了我的堆栈

1 个答案:

答案 0 :(得分:0)

我正在使用此滑动菜单,我可以在整个应用程序中使用它。即使在ViewController弹出后也是如此。

使用根视图控制器 - MainViewController初始化ENNavigationViewController(可以使用&#34;示例&#34;文件夹中的示例)。

当您想要呈现下一个视图控制器时:

self.navigationController?.pushViewController(...)

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

setContentViewController(contentViewController: UIViewController)