У меня есть ячейка табличного представления, как на картинке выше.Я делаю заявление для арендатора в квартире, чтобы сообщить о дефекте помещения.если дефект был устранен, данные с сервера выдадут defect.status == 2
(если дефект.status == 1, процесс еще подлежит ремонту), тогда я покажу комментарий / ответ пользователя, удовлетворены они или нет,после того, как они ответят, нажмите YES или NO.UIView должен быть удален, я имею в виду UIView, который содержит ярлык «Вы удовлетворены» и кнопку «Да, нет», как показано ниже, и больше не появляются
Iиспользуйте приведенный ниже код в cellForRow в методе IndexPath
if dataDefect.status == 2 {
cell.commentResponseView.removeFromSuperview()
}
но я обнаружил ошибку nil
вот мой код в контроллере представления:
extension RequestDefectVC : UITableViewDataSource {
//MARK: Table View Delegate & Datasource
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return listDefects.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "defectCell", for: indexPath) as! RequestDefectCell
let dataDefect = listDefects[indexPath.row]
cell.defectData = dataDefect
if dataDefect.status == 3 {
cell.commentResponseView.removeFromSuperview()
}
// to implement button delegate on RequestDefectCell Delegate
cell.cellYesButtonDelegate = self
cell.cellNoButtonDelegate = self
cell.tag = indexPath.row
return cell
}
}
и вот код в моей ячейке табличного представления:
protocol RequestDefectCellYesButtonDelegate : class {
func yesButtonDidPressed(defectID: Int)
}
protocol RequestDefectCellNoButtonDelegate : class {
func noButtonDidPressed(defectID: Int)
}
class RequestDefectCell: UITableViewCell {
@IBOutlet weak var defectImageView: DesignableImageView!
@IBOutlet weak var defectStatusLabel: UILabel!
@IBOutlet weak var defectCreationDateLabel: UILabel!
@IBOutlet weak var unitLabel: UILabel!
@IBOutlet weak var defectDescriptionLabel: UILabel!
@IBOutlet weak var commentResponseView: UIView!
@IBOutlet weak var defectStatusLogo: UIImageView!
weak var cellYesButtonDelegate: RequestDefectCellYesButtonDelegate?
weak var cellNoButtonDelegate: RequestDefectCellNoButtonDelegate?
@IBAction func yesButtonDidPressed(_ sender: Any) {
guard let defectData = defectData else {return}
cellYesButtonDelegate?.yesButtonDidPressed(defectID: defectData.defectID)
}
@IBAction func noButtonDidPressed(_ sender: Any) {
guard let defectData = defectData else {return}
cellNoButtonDelegate?.noButtonDidPressed(defectID: defectData.defectID)
}
}
Я знаю, что это будет, вероятно, потому что я уже подключил его к ячейке
@IBOutlet weak var commentResponseView: UIView!
но если я не подключусь, у меня не будет никакой другой идеи