dekatotoro / SlideMenuControllerSwift

iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure swift.
MIT License
3.4k stars 755 forks source link

Navigation bar is hidden after changeViewController #219

Open ghost opened 8 years ago

ghost commented 8 years ago

Hi guys,

I am using SlideMenuControllerSwift in my project. I have a problem with navigation bar. When I am going first time to 'MainViewController' is it working fine(navigation bar is visible), but when I choose from 'LeftMenu' same item 'MainViewController', navigation bar is hidden. What I am doing wrong? Thank you

AppDelegate

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

        let mainViewController = storyboard.instantiateViewController(withIdentifier: "MainViewController") as! MainViewController
        let leftViewController = storyboard.instantiateViewController(withIdentifier: "LeftMenuViewController") as! LeftMenuViewController
        let StartViewController = storyboard.instantiateViewController(withIdentifier: "StartViewController") as! StartViewController
        let nvc: UINavigationController = UINavigationController(rootViewController: StartViewController)

        UINavigationBar.appearance().tintColor = UIColor.white

        leftViewController.mainViewController = mainViewController

        let slideMenuController = ExSlideMenuController(mainViewController:nvc, leftMenuViewController: leftViewController)
        slideMenuController.automaticallyAdjustsScrollViewInsets = true
        slideMenuController.delegate = mainViewController
        self.window?.backgroundColor = UIColor(hex: "1F2E43")
        self.window?.rootViewController = slideMenuController
        self.window?.makeKeyAndVisible()

MainViewController

class MainViewController: RootViewController, SlideMenuControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
        super.viewWillTransition(to: size, with: coordinator)
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.addLeftBarButtonWithImage(UIImage(named: "MenuIcon")!)
        self.slideMenuController()?.removeLeftGestures()
        self.slideMenuController()?.addLeftGestures()
    }

    @IBAction func startAction(_ sender: AnyObject) {
    }

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

}

previewslide

jpcguy89 commented 8 years ago

Having the same issue, was literally coming now to ask about it.

cmpdvd commented 7 years ago

Having the same issue, without using storyboard

 nvc = UINavigationController(rootViewController: overviewViewController)
       nvc.isNavigationBarHidden    =  false
    slideMenuVC = ExSlideMenuController(mainViewController:nvc,
                                                leftMenuViewController: leftViewController,
                                                rightMenuViewController: rightViewController)

    slideMenuVC.automaticallyAdjustsScrollViewInsets = true
    slideMenuVC.delegate = overviewViewController

    addChildViewController(slideMenuVC)
    self.view.addSubview(slideMenuVC.view)
    slideMenuVC.didMove(toParentViewController: self)
spurdow commented 7 years ago

+1 im having the same issue too. Do you have a solution?

JeronimoPaganini commented 7 years ago

Solution is: let mainViewController = storyboard.instantiateViewController(withIdentifier: "MainNavigationController") and let leftMenuController = storyboard.instantiateViewController(withIdentifier: "MenuNavigationController")

p.s. need set identifier navigation controllers (not view controllers)