Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- UIButton
- 한글
- rxswift
- JPA
- Code
- Session
- MacOS
- IOS
- error
- appstore
- github
- 개발자
- 웹뷰
- Realm
- Git
- darkmode
- iOS16
- view
- mac
- geofencing
- SwiftUI
- Firebase
- Archive
- window
- Apple
- FLUTTER
- stack
- Swift
- Xcode
- Notification
Archives
- Today
- Total
EEYatHo 앱 깎는 이야기
Swift ) UIButton in Cell not working - EEYatHo iOS 본문
반응형
class MyCell: UITableViewCell {
...
func initFunc() {
...
myButton.addTarget(self, action: #selector(myFunc(_:)), for: .touchUpInside)
...
}
@objc myFunc(sender: UIButton) {
...
}
...
}
이런식으로 셀 안에서 addTarget으로 셀 안에 있는 @objc func을 연결해줘봤자,
.touchUpInside 이벤트를 받고, 처리하는 객체는 Cell 보다 상위에 있는 뷰컨트롤러가 합니다.
그래서 self는 상위에 있는 뷰컨으로 바뀌어야 할 것이며, @objc함수로 뷰컨에다가 선언해야합니다.
그러면 셀 안에 굳이 VC를 전달하고, 다시 함수를 참조해야하는데,
그것보다는 Cell을 넣어주는 cellForRowAt단계에서 처리해주는 것이 더 깔끔하다고 생각합니다.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyCell
cell.myButton.addTarget(self, action: #selector(myFunc(_:)), for: .touchUpInside)
return cell
}
요로깨
'iOS, Swift' 카테고리의 다른 글
Swift ) Realm - EEYatHo iOS (0) | 2021.03.23 |
---|---|
Swift ) Realm 사용시 쓰레드 주의사항 - EEYatHo iOS (0) | 2021.03.23 |
Swift ) .system타입 UIButton setTitle 애니메이션 없애기 - EEYatHo iOS (0) | 2021.03.22 |
Swift) 앱 배포시 네아로 로그인 안됨 - EEYatHo iOS (0) | 2021.03.17 |
iOS, Swift 애니메이션 서드파티 Lottie (0) | 2021.03.16 |
Comments