아리의 iOS 탐구생활

[UiKit/iOS] 셀이 didSelect 되었을 때 화면 전환하기 본문

Swift/iOS

[UiKit/iOS] 셀이 didSelect 되었을 때 화면 전환하기

Ari Lee 2022. 2. 6. 01:04
반응형
테이블뷰나 컬렉션뷰나... 
didSelectRowAt 메소드가 호출되었을 때 화면전환을 해주고 싶으면
어떻게 해야하는지 알아보는 시간!

 

 

 

아래처럼 스토리보드에서 Segue를 생성해주자

Segue를 생성하기

이후 생성한 Segue를 클릭하고, 우측 인스펙터에서...

 

Segue의 inspector

위와 같이 identifier를 지정해준다.

이후 코드로 돌아가서 Delegate 프로토콜을 채택해주고, didSelectRowAt 메소드를 호출하여 performSegue 메소드를 호출해주면 끝~

// 코드 예시~
extension ItemListViewController: UITableViewDelegate {
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        performSegue(withIdentifier: "ItemDetailView", sender: nil) // 아까 인스펙터에서 설정해준 identifier를 입력해주었다.
    }
}

 

화면 전환해주면서 데이터를 전달해주고 싶다면 prepare 메소드를 활용하면 된다!

// 이것도 코드예시~
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard let item = sender as? ExpositionItem,
          let nextViewController = segue.destination as? ItemDetailViewController else {
        showAlert(message: "데이터 전달에 실패했습니다.")
        return
    }
    nextViewController.setModel(item)
}

 

 

 

 

 

Reference

https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614877-tableview

 

Apple Developer Documentation

 

developer.apple.com

https://developer.apple.com/documentation/uikit/uiviewcontroller/1621490-prepare

 

Apple Developer Documentation

 

developer.apple.com

https://developer.apple.com/documentation/uikit/uiviewcontroller/1621413-performsegue

 

Apple Developer Documentation

 

developer.apple.com

 

반응형
Comments