У меня есть всплывающее окно, в котором я отправляю идентификаторы участников.Когда пользователь нажимает кнопку, изображение кнопки меняется с не отмеченного на отмеченное, и идентификатор участника отправляется на сервер.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? StartJourneyTableViewCell
if (cell == nil) {
cell = StartJourneyTableViewCell(style: .default, reuseIdentifier: "cell")
}
cell?.lblPopupName.text = arrPopUpItems[indexPath.row].popUpUserName
let imageURL = URL(string: arrPopUpItems[indexPath.row].popUpUserImage)
cell?.imagevewPopup.sd_setImage(with: imageURL, placeholderImage: nil, options: .cacheMemoryOnly, completed: nil)
let unMarkImage = UIImage(named: "popup unmark")
let markedImage = UIImage(named: "popup mark")
if arrStatus.contains(indexPath.row){
cell?.btnPopUp.setImage(markedImage, for: .normal)
cell?.btnPopUp.isSelected = true
}else{
cell?.btnPopUp.setImage(unMarkImage, for: .normal)
cell?.btnPopUp.isSelected = false
}
cell?.btnPopUp.tag = indexPath.row
indexPathSelected = indexPath
cell?.selectionStyle = .none
cell?.layoutSubviews()
return cell!
}
@IBAction func btnPopUpPressed(_ sender: UIButton) {
if sender.isSelected == true{
if arrStatus.contains(sender.tag){
arrStatus.remove(at: sender.tag)
}
sender.setImage(UIImage(named: "popup unmark"), for: .normal)
sender.isSelected = false
if let index = arrSelectedMembers.index(of: arrPopUpItems[sender.tag].memberID){
arrSelectedMembers.remove(at: index)
}
}else{
arrStatus.append(sender.tag)
sender.setImage(UIImage(named: "popup mark"), for: .normal)
sender.isSelected = true
arrSelectedMembers.append(arrPopUpItems[sender.tag].memberID)
print("Arr selected members are: \(arrSelectedMembers)")
isBtnSelected = true
}
}
Теперь в следующем View Controller я вызываю функцию:
func getJourneyDetails() {
if Connectivity.isConnectedToInternet{
let parameters = ["":""]
CallWebServices.shared.postData(url: Api.developmentURL + Api.getJourney, isAuthorizationReqd: true, parameters: parameters, completion: { (responseObject, error) in
if responseObject != nil{
let json = JSON(responseObject!)
let resultCode = json["result_code"].stringValue
if resultCode == "-6"{
self.getJourneyDetails()
}
if resultCode == "1"{
let resultData = json["result_data"]
let trackers = resultData["trackers"].arrayValue
for tracker in trackers{
self.getMemberID = tracker["member_id"].intValue
self.arrTrackers = tracker["member_id"].stringValue
self.arrInt.append(self.getMemberID)
print("Arr int is: \(self.arrInt)")
self.arrGetMembers.append(OngoingPopUpItems(popUpUserName: " ", popUpUserImage: " ", popUpUserCheckmark: " ", memberID: self.arrTrackers))
// self.arrStatus.append(self.getMemberID)
print("arr get members: \(self.arrGetMembers)")
}
}
print("Response in get journey: \(responseObject!)")
}
})
}else{
self.showAlert(title: "Error", message: "Check Internet Connection")
}
}
и пытаюсь установить тики идентификатора полученного члена так, чтобы они уже отображались в табличном представлении после того, как пользователь нажимает Обновить участников, а такжебыть в состоянии добавить / удалить тех участников снова там, но я не могу достичь этого.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! OngoingTableViewCell
// if (cell == nil) {
// cell = OngoingTableViewCell(style: .default, reuseIdentifier: "cell")
// }
cell.lblPopUp.text = arrPopUpItems[indexPath.row].popUpUserName
let imageURL = URL(string: arrPopUpItems[indexPath.row].popUpUserImage)
cell.imgviwPopUp.sd_setImage(with: imageURL, placeholderImage: nil, options: .cacheMemoryOnly, completed: nil)
let unMarkImage = UIImage(named: "popup unmark")
let markedImage = UIImage(named: "popup mark")
if arrStatus.contains(indexPath.row) {
cell.btnPopup.setImage(markedImage, for: .normal)
cell.btnPopup.isSelected = true
}else{
cell.btnPopup.setImage(unMarkImage, for: .normal)
cell.btnPopup.isSelected = false
}
// let popupMembers = arrGetMembers[indexPath.row].memberID
// for popupMember in popupMembers
// {
//
// }
// if arrGetMembers[indexPath.row].memberID .contains(self.arrTrackers){
// cell.btnPopup.setImage(markedImage, for: .normal)
// cell.isSelected = true
// }else{
// cell.btnPopup.setImage(unMarkImage, for: .normal)
// cell.isSelected = false
// }
// if arrInt.contains(self.getMemberID){
// cell.btnPopup.setImage(markedImage, for: .normal)
// cell.isSelected = true
// }else{
// cell.btnPopup.setImage(unMarkImage, for: .normal)
// cell.isSelected = false
// }
cell.btnPopup.tag = indexPath.row
cell.selectionStyle = .none
cell.layoutSubviews()
return cell
}