일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Method
- struct
- interpace
- delegate
- Class
- 디자인패턴
- url
- Protocol
- 스위프트
- UIKit
- extension
- init
- enum
- initializer
- optional
- property
- Git
- Foundation
- String
- 코딩테스트
- Xcode
- Swift
- Terminal
- instance
- IOS
- tuist
- type
- initalizer
- 이니셜라이저
- Unicode
Archives
- Today
- Total
아리의 iOS 탐구생활
[UiKit/iOS] 셀이 didSelect 되었을 때 화면 전환하기 본문
반응형
테이블뷰나 컬렉션뷰나...
didSelectRowAt 메소드가 호출되었을 때 화면전환을 해주고 싶으면
어떻게 해야하는지 알아보는 시간!
아래처럼 스토리보드에서 Segue를 생성해주자
이후 생성한 Segue를 클릭하고, 우측 인스펙터에서...
위와 같이 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
https://developer.apple.com/documentation/uikit/uiviewcontroller/1621490-prepare
https://developer.apple.com/documentation/uikit/uiviewcontroller/1621413-performsegue
반응형
'Swift > iOS' 카테고리의 다른 글
[RxSwift/Alamofire] Alamofire를 Mocking해서 네트워크와 무관한 테스트 하기 (3) | 2022.08.14 |
---|---|
[UIKit/iOS] Storyboard Reference (0) | 2022.04.08 |
[UiKit/iOS] 네비게이션 바 감추는 방법 (0) | 2022.02.06 |
[UIKit/iOS] 뷰의 재사용이란? (0) | 2022.02.06 |
[iOS/UIKit] Frame vs Bounds (0) | 2021.12.02 |
Comments