Notice
Recent Posts
Recent Comments
Link
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

lgvv98

ch09 ํ˜„์ƒ๊ธˆ ๋žญํ‚น์•ฑ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ณธ๋ฌธ

โš ๏ธ deprecated โš ๏ธ/ํŒจ์บ (์˜ฌ์ธ์›)

ch09 ํ˜„์ƒ๊ธˆ ๋žญํ‚น์•ฑ ์ฝ”๋“œ๋ฆฌ๋ทฐ

๐Ÿฅ• ์บ๋Ÿฟ๋งจ 2021. 6. 21. 01:30

ํŒจ์ŠคํŠธ ์บ ํผ์Šค ๋žญํ‚น์•ฑ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— 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์—์„œ ์„ ํƒ์‹œ์— ๋‚˜ํƒ€๋‚˜๋Š” ์ƒ‰ ์กฐ์ •

์…€์—์„œ ์šฐ์ธก์ด Selection ๋ถ€๋ถ„์„ None์œผ๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์™„๋ฃŒ ํšŒ์ƒ‰์ด ๋œจ๋Š”๊ฑธ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

https://github.com/lgvv/fastCampus/tree/main/BountyList

 

lgvv/fastCampus

Contribute to lgvv/fastCampus development by creating an account on GitHub.

github.com

 

Comments