UITableView의 셀을 탭했을 때 다른 ViewController로 화면을 전환하려면, 일반적인 ViewController 간 Segue를 연결하는 것과 동일한 방식으로 작업하면 됩니다. 여기서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.
스토리보드 설정
먼저 새 프로젝트를 생성한 뒤, 스토리보드에서 기존 View Controller를 삭제하고 Table View Controller 하나와 View Controller 하나를 추가합니다.
Table View Controller에는 기본적으로 프로토타입 셀이 하나 포함되어 있습니다. 해당 셀을 선택한 후 Attribute Inspector로 이동하여 Identifier를 cell로 지정합니다.
이제 프로토타입 셀에서 Control 키를 누른 상태로 두 번째 View Controller까지 드래그한 후, 팝업 메뉴에서 Show를 선택합니다.
여기까지 완료하면 스토리보드가 아래 이미지와 같은 형태가 됩니다.

추가한 View Controller의 Storyboard ID를 VC2로 지정하고, Table View Controller에 사용할 커스텀 클래스도 생성해 줍니다.
Table View 데이터 소스 구현
이제 Table View 클래스에 다음과 같이 데이터 소스 메서드를 작성합니다.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
cell?.textLabel?.text = "\(indexPath.row)"
return cell!
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}이 코드는 테이블이 1개의 섹션과 5개의 행을 가지도록 하며, 각 행의 제목은 해당 행의 번호로 표시됩니다.
Segue 발생 시 작업 처리하기
Ssegue가 실행될 때 특정 로직을 수행해야 한다면, prepare(for:sender:) 메서드를 오버라이드하여 처리할 수 있습니다.
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segueID" {
// 여기에 커스텀 segue 작업을 작성합니다.
}
}실행 결과
위 코드를 빌드하고 실행한 뒤 아무 셀이나 클릭하면, 두 번째 ViewController로 자연스럽게 화면이 전환되는 것을 확인할 수 있습니다.
