macOS, iOS

[iOS] custom tableview cell의 button 액션 처리하기

SweetDev 2020. 7. 1. 02:56

첨에는 태그로 처리하려고 이리 저리 옮겨봤었는데, 결론은 callback으로 처리하는게 좋다!!

 

버튼을 눌렀을 때 콜백을 실행해주는 정도로 해주면 될 것 같다

 

 

class LockerMyTableViewCell: UITableViewCell {

  @IBOutlet var registerButton: UIButton!

  @IBAction func didTapRegisterButton(_ sender: Any) {

    tapCallback?()

  }

}

 

이렇게 클래스 내에 선언해주고,

 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

 

cell.tapCallback = {

        let alert = UIAlertController(title: "사물함 반납", message: "[\(self.data[indexPath.row].number)] 사물함을 반납하시겠습니까?", preferredStyle: .alert)

        let defaultAction = UIAlertAction(title: "확인", style: .destructive, handler: { _ in

          ApiHelper.lockerCancel(loginID: UserDefaults.loginID!, floor: self.data[indexPath.row].floor, number: self.data[indexPath.row].number) { response in

            if response {

              self.defaultAlert(title: "성공", message: "성공적으로 반납되었습니다") { _ in

                self.reloadWhole()

              }

            } else {

              self.defaultAlert(title: "실패", message: "반납 실패") { _ in }

            }

          }

        })

 

}

이런식으로 :D