티스토리 뷰

* 내가 하려던것

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에 해당하는거 삭제해줬더니

된다~~~

중복으로 해서 그런거였음 ㅎㅎ

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함