didSelectRowAt 메소드 사용시 주의사항 (delegate)

2023. 1. 3. 22:21iOS

흔히들 테이블뷰나 컬렉션 뷰를 사용할때에 셀을 클릭시 셀안으로 들어가기 위해 didSelectRowAt 메소드를 사용합니다.

이 메소르를 사용하면서 한가지 주의 해야 할 점을 알아가보자 합니다.

 

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        let vc = ViewController()

        navigationController?.pushViewController(vc, animated: true)

    }

 

흔히 사용 하는 didSelectRowAt 메소드입니다.

여기서 저는 추가적으로 셀 안에 뷰를 들어가기 위해서 메소드를 사용하며 셀안의 뷰를 불러 옵니다.

 

여기서 실수가 발생할 수 있다는 점을 알아보고자 합니다.

 

tableView.dataSource = self

tableView.delegate = self

didSelectRowAt 의 메소드를 사용하기 위해서는 일반적으로 

dataSource 만을 불러오면 메소드를 불러오기 및 사용이 가능합니다.

허나 여기서 delegate를 놓칠 경우 didSelectRowAt 메소드가 실행이 되지 않습니다.!!

물론 대부분이 dataSource delegate 은 한몸이기에 항상 같이 써서 이를 놓치는 경우는 잘 일어나지 않습니다.

가끔 급하게?하거나.. 데이터소스면 되지.. 델리게이트까지  필요없다고 생각하여 델리게이트를 빠트린다면 didSelectRowAt 의 메소드가 실행 되지 않는다는점 알아주시면 좋을꺼같습니다.!!