Here I am trying to pass value from one class `LanguageSelectionTVC` to another `RegistrationVC` by using a Protocol. 

When I try and call the method `self.delegate?.setSelectedLangauges(self.languagesSpokenArray)` inside `LanguageSelectionTVC` it doesn't call the method `setSelectedLangauges` inside the class `Registration VC` could someone please suggest where I am going wrong ?

```
protocol LanguageSelectionTVCProtocol {
    func setSelectedLangauges(_ valueSent: [String])
}

class LanguageSelectionTVC: UITableViewController {
    var delegate                    : LanguageSelectionTVCProtocol? = nil

   func saveAndClose() {
        self.delegate?.setSelectedLangauges(self.languagesSpokenArray)
        dismiss()
   }

}

class RegistrationVC:           UIViewController,
                                UITableViewDelegate,
                                UITableViewDataSource,
                                LanguageSelectionTVCProtocol{

    func setSelectedLangauges(_ valueSent: [String]){  
         self.showLanguagesSpoken(valueSent)
    }
}

```

Moving to `LanguageSelectionTVC` from `RegistrationVC` . The below `tableView` method is in my `RegistrationVC`

```
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let row     = indexPath.row
        let section = indexPath.section

        let currentCell = tableView.cellForRow(at: indexPath) as! UITableViewCell
        if section == 4 && row == 0 {
            // The user has clicked on languages spoken cell
            self.performSegue(withIdentifier: "LanguageSelectionTVC", sender: self)
        }
    }

```