I have a dictionary that I want to manipulate depending on options selcted by the user.
in the first View Controller:
var filterDictionary = [String : [String]]()
includes a function which is called from the second View Controller
func onOptionsCLosed(_ filter : String, options : [String]) {
    if options.count > 0 {
        print(filter)
        print(options)
        filterDictionary[filter] = options
        print(filterDictionary)
    }
}
and also an action that I'm using to test the result
@IBAction func submitFilter(_ sender: UIButton) {
    print(filterDictionary)
}
in the second View Controller, I have an action that checks the items in an array to make sure there something there and then passes the needed values to the first View Controller
 @IBAction func submitOptions(_ sender: UIButton) {
    let mainVC: FilterViewController = FilterViewController()
    var selectedOptions: [String]? = []
    if (optionCollectionView.indexPathsForSelectedItems != nil) {
        for i in optionCollectionView.indexPathsForSelectedItems! {
            let pos = i[1]
            selectedOptions?.append(options[pos])
        }
        mainVC.onOptionsCLosed(filter, options: selectedOptions!)
    } else {
        print("ELSE")
        // no items were selected prompt
    }
    _ = self.navigationController?.popViewController(animated: true)
}
The problem I'm running into is once the correct parameters are passed to the first View Controller and I'm able to print them out but if I click the button to check the values contained by the dictionary it prints and empty dictionary or rather it'll print: [:]
 
     
    