[iOS] custom tableview cell의 button 액션 처리하기
첨에는 태그로 처리하려고 이리 저리 옮겨봤었는데, 결론은 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