티스토리 뷰
* 내가 하려던것
TableViewCell.xib 파일 안에 있는 버튼을 눌렀을 때 화면 전환이 일어나도록 하려고 했음.
이때는 tableviewcell 파일이 아니라 ViewController파일에서 버튼이 눌렸을 때..의 상황을 구현해줘야 한다.
* 나의 실수
내가 처음에는 tableViewCell 파일에다가 button 을 IBAction으로 연결해서 화면전환을 구현할려고 했는데
오류도 나고 생각해보니까 그렇게 하면 이 셀을 다시 재활용 할 수 가 없는것이었다..
그래서 어케하지 하다가 ..
일단 UIButton을 IBOutlet으로 연결해놓고, 뷰컨의 UITableViewDataSource를 채택한 곳에서 이 버튼에 접근해서 하기로 함.
그래서
@objc
func loginButtonClicked(_ sender : UIButton){
print("화면전환 구현해주기")
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch indexPath.row {
case 0:
guard let cell = tableView.dequeueReusableCell(withIdentifier: MyTopTVC.identifier, for: indexPath) as? MyTopTVC else { return UITableViewCell() }
cell.loginButton.addTarget(self, action: #selector(loginButtonClicked(_:)), for: .touchUpInside)
return cell
default:
return UITableViewCell()
}
}
이렇게 했음..
cell에 IBOutlet으로 연결해준 loginButton에 접근해서 addTarget메서드 + #selector 를 이용해 만들어준 함수 func loginButtonClicked를 실행하게 함..
근데 자꾸 오류가 남..
왜.... ?
....
** 해결
알고보니..
내가 IBAction으로도 한번 연결해서 그런거였다.
여기서 IBAction에 해당하는거 삭제해줬더니
된다~~~
중복으로 해서 그런거였음 ㅎㅎ
'iOS' 카테고리의 다른 글
[Swift Concurrency] Swift의 Async Await (4) | 2023.06.23 |
---|---|
[WWDC] Understanding Swift Performance (1) - Allocation (1) | 2022.02.13 |
[iOS/Swift] UIView, UIImageView에 그림자주기 (0) | 2021.06.07 |
[오류] outlet cannot be connected to repeating content (0) | 2021.06.07 |
[Swift] Extension? (2) | 2021.04.30 |