Search code examples
iosswiftuinavigationcontroller

how to pass value to navigation controller


I want pass value to my viewcontroller and keep my navigation flow.

I have created navigationController which opening my PostJobVC.

When I am calling this it's working but navigation not working.

  let vc : PostJobVC = UIStoryboard.instantiateController(forModule: SFStoryBoard.job)
        vc.history = history
        self.navigationController?.present(vc, animated: true, completion: nil)

For that reason I am opening navigationController (name is jobnav)

let storyboard = UIStoryboard(name: SFStoryBoard.job.rawValue, bundle: nil)
        let controller = storyboard.instantiateViewController(withIdentifier: "JobNav")
        self.present(controller, animated: true, completion: nil)

How could I pass history object to PostJobVC through JobNav automatically.


Solution

  • Subclass navigation controller, and pass data to that controller:

    var navCon: MyNavigationController? = storyboard.instantiateViewController(withIdentifier: "")
    

    Declare a property:

     var dataToSend: String = ""
    

    you can send data to dataToSend

    navCon.dataToSend = "hello"
    

    In the MyNavigationController, you can later pass on this value to any of the view controller in the navigation stack.