패스트 캠퍼스 랭킹앱을 시작하기 전에 TableView에는 워낙 자신감이 있었는데, 이번에 조금 더 개념을 구체화하고 사용하지 않던 부분도 알게되어서 작성해보고자 한다.
(목차)
1. performSegue의 sender 파라미터
2. prepare에서 sender 활용해 다른 뷰의 프로퍼티로 넘기는 법
3. TableView에서 선택시에 나타나는 색 조정
1. 1. performSegue의 sender 파라미터
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "showDetail", sender: indexPath.row)
// sender는 세그 수행에 있어 오브젝트를 같이 껴서 보낼 수 있는 파라미터
}
performSegue에서 sender의 역할을 정확하게 몰라서 사용하는데 제약이 있었는데, 이번 기회로 정확하게 이해가 되었다.
indexPath.session과 같은 정보도 전달할 수 있는데, 해본건 아니지만 row와 session을 함께 전달하려면 배열에 담아서 그 배열을 전달하는 방법으로 사용할 수도 있을 것 같다.
2. prepare에서 sender 활용해 다른 뷰의 프로퍼티로 넘기는 법
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// DetailViewContoller한테 전달한 데이터 정보
if segue.identifier == "showDetail" {
let vc = segue.destination as? DetailViewController
if let index = sender as? Int { // indexPath.row의 값이 sender통해 전달 돼
vc?.name = nameList[index]
vc?.bounty = bountyList[index]
}
}
}
다음과 같은 방법으로 넘길 수 있다.
우선 전제 조건이 segue를 연결해서 세그의 아이디를 지정해주고, 목적지를 찾아서 sender에서 정보를 받아와 index에 넣어 전달!!
protocol 방식으로 데이터를 넘기기도 하였는데, 이것도 나쁘지 않은 방법!!
3. TableView에서 선택시에 나타나는 색 조정
이렇게 하면 완료 회색이 뜨는걸 방지할 수 있다.
https://github.com/lgvv/fastCampus/tree/main/BountyList
'Archive > 패캠(올인원)' 카테고리의 다른 글
ch11 현상금 랭킹앱 코드리뷰(CollectionView) (0) | 2021.06.22 |
---|---|
💈 ch11 Animation - 개념편💈 (0) | 2021.06.22 |
ch10 현상금 랭킹앱 코드리뷰(MVVM) (0) | 2021.06.21 |
ch10 MVVM 패턴 (0) | 2021.06.21 |
패스트 캠퍼스 iOS 강의 (0) | 2021.06.20 |