반응형
iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다.
import UIKit
protocol CustomTableCellDelegate: AnyObject {
func didTapButton()
}
class CustomTableCell: UITableViewCell {
// 스토리보드에 있는 버튼
@IBOutlet var button: UIButton
var delegate: PushTableViewCellDelegate?
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
// 버튼 클릭 이벤트 추가
button.addTarget(self, action: #selector(didTapButton(_:)), for: .touchUpInside)
}
required init?(coder: NSCoder) {
fatalError()
}
/// cell 안의 버튼 클릭 시 실행 이벤트
@objc func didTapButton(_ sender: UIButton) {
delegate?.didTapButton(sender)
}
}
import UIKit
extension MainViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: CustomTableCell.identifier, for: indexPath) as! CustomTableCell
// delegate 설정
cell.delegate = self
return cell
}
}
extension MainViewController: CustomTableCellDelegate {
func didTapButton() {
// 버튼 클릭시 실행할 코드 입력..
}
}
반응형
'iOS > 코드조각' 카테고리의 다른 글
[iOS, Swift] urlSession network 통신 (0) | 2022.08.15 |
---|---|
[iOS, Swift] CurrentValueSubject 사용하기, 테스트 코드 (Combine) (0) | 2022.08.14 |
[iOS, Swift] 테이블 뷰의 셀 지우기 (0) | 2022.08.10 |
[iOS, Swift] Asset validation failed(TestFlight, Archive) (0) | 2022.07.19 |
[iOS, Swift] Swift Closure Snippet (0) | 2022.07.13 |