Я пытаюсь отправить выбранные данные из дочернего контроллера представления в родительский контроллер представления, используя замыкание в качестве механизма обратного вызова. В пользовательском интерфейсе используется четыре раскрывающихся списка, и для этого используется дочерний контроллер View. Теперь в каждом раскрывающемся списке передается класс структурной модели, содержащий соответствующие данные. Поэтому теперь при передаче обратно выбранных данных в родительское представление необходимо использовать их уважаемые классы структуры.
Для лучшего понимания код ниже того, что я пробовал до сих пор:
struct Roles : Codable {
let roleId : Int?
let roleName, roleContent : String?
private enum Codingkeys: String, CodingKey
{
case roleId = "roleId"
case roleName = "roleName"
case roleContent = "roleContent"
}
}
// ChildViewController
var myRoless = [Roles]()
var completionHandler:((String) -> Int)?
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let result = completionHandler?(myRoless[indexPath.row])
print("completionHandler returns... \(String(describing: result))")
removeAnimate()
}
// ParentViewController
childEditTaskViewController?.completionHandler = { text in
// print("text = \(text)")
strSelectedValue = text
}
Ошибка:
Cannot convert value of type 'Roles' to expected argument type 'String
Это то, что я пробовал до сих пор