На этом фото, как вы можете видеть, пользователь может включать или выключать переключатель для каждой ячейки.В конце, когда пользователь нажимает кнопку, мне нужно добавить выбранную ячейку (ячейки с включенным переключателем) в массив, чтобы отправить ее в API.
Когда пользователь нажимает кнопку (внизу)экрана) Я должен получить unitNo
и personId
и сохранить их в своей структуре
Моя модель:
struct Itemm : Codable {
var unitNo:Int?
var personId:Int?
}
struct welcome {
var items : [Itemm?]
}
и яЯ должен отправить массив, как показано ниже:
{
"items": [
{
"unitNo": 0,
"personId": 0
}
]
}
Я запутался в том, как мне получить доступ к данным ячейки в UIButton с помощью оператора if и затем сохранить их.Буду признателен за любую помощь.
Tableview:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "SmsCell") as? SmsTableViewCell
cell?.PhonNumberLbl.text = data![indexPath.section].contacts[indexPath.row]?.phoneNumber
cell?.NameLbl.text = data![indexPath.section].contacts[indexPath.row]?.name
cell?.selectedTF.isOn = (data![indexPath.section].contacts[indexPath.row]?.selected)!
return cell!
}
Ответ API:
[
{
"contacts": [
{
"id": 9827,
"selected": true,
"phoneNumber": "09203137745",
"name": "owner"
},
{
"id": 10159,
"selected": true,
"phoneNumber": "08523698522",
"name": "hff"
},
{
"id": 10161,
"selected": true,
"phoneNumber": "09586731218",
"name": "hjdldue"
}
],
"unitNo": 1,
"unitPlaque": "jack",
"billText": "texttext"
},
{
"contacts": [
{
"id": 10145,
"selected": true,
"phoneNumber": "09123809556",
"name": "mmm"
},
{
"id": 10160,
"selected": true,
"phoneNumber": "85233366888",
"name": "ttt"
}
],
"unitNo": 2,
"unitPlaque": "mm",
"billText": "texttext"
}
]
Мне кажется, я не совсем ясно объяснил, что я ищу.
Первый метод, который я вызываю, - это метод GET
, который дает мне данные, которые я представляю в таблице.Пользователь может изменить только переключатель, пользователь может изменить его столько раз, сколько он хочет, пока он / она не нажмет кнопку (внизу экрана).
Когда кнопка нажата, мне нужнополучить скрытые данные за каждой ячейкой и сохранить их в моей структуре и отправить их в API, который имеет другой метод.Когда пользователь нажимает кнопку, мне нужно извлечь 2 свойства из ячеек, для которых включено.
Presenter представляет это:
func sendSmsForAllTheMembers(AptId:String , data:[String:Int])
{
ApiGenerator.request(targetApi: ApartemanService.sendSms(aptId: AptId, data: data), responseModel: Nil.self, success: { (response) in
if response.response.statusCode == 200 {
self.view?.SendingSmsSuccess()
}else {
do{
var errorMessage = try response.response.mapString()
errorMessage = errorMessage.replacingOccurrences(of: "\"", with: "",
options: NSString.CompareOptions.literal, range:nil)
self.view?.SendingSmsFailed(errorMessage: errorMessage)
}catch let error{
print(error)
self.view?.SendingSmsFailed(errorMessage: "error")
}
}
}) { (error) in
self.view?.SendingSmsFailed(errorMessage: "error")
}
}