๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽ iOS/iOS

[iOS] ์›ํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋˜๋Œ์•„๊ฐ€๊ธฐ(feat.unwind)

by Fomagran ๐Ÿ’ป 2021. 3. 3.
728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!

 

์˜ค๋Š˜์€ ์›ํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ธ unwind์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

 

๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~

 

(๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ด๋™ํ•˜์…จ์„ ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค ใ…œ)


์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ A -> B -> C -> D ๋กœ ์ด๋™ํ•˜๋Š” ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋“ค์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ• ๊ฒŒ์š”~

 

๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ๋‚ด๊ฐ€ ๋งŒ์•ฝ D๊นŒ์ง€ ์ด๋™ํ•˜๊ณ  A๋กœ ๋Œ์•„๊ฐ€๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”?

 

AViewController

 

AViewController์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ง์ ‘ IBAction์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

    @IBAction func unwindToAViewController (segue : UIStoryboardSegue) {
        
    }

DViewController

 

๊ทธ ๋‹ค์Œ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋กœ ์ด๋™ํ•˜์…”์„œ DViewController์˜ ์œ— ๋ถ€๋ถ„์˜ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์•„์ด์ฝ˜์„ control๊ณผ ํ•จ๊ป˜

 

3๋ฒˆ์จฐ ์•„์ด์ฝ˜์ธ Exit์— ๋“œ๋ž˜๊ทธ ํ•ด์ฃผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์œ„์—์„œ ๋งŒ๋“ค์–ด์ค€ IBAction์ด ๋ณด์ผ๊ฑฐ์—์š”.

 

๊ทธ๋ฆฌ๊ณค DViewController์˜ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋กœ ์ด๋™ํ•ด์„œ ์œ„์—์„œ ๋งŒ๋“ค์–ด์ค€ unwindToAViewController๋ฅผ ํด๋ฆญํ•ด์ค๋‹ˆ๋‹ค.

 

(์ €๋Š” unwindSitterViewController๋ผ๊ณ  ์ด๋ฆ„ ์ง€์—ˆ๋Š”๋ฐ ์ด๊ฒŒ unwindToAViewController๋กœ ์ดํ•ดํ•ด์ฃผ์„ธ์š”!)

 

๊ทธ๋Ÿผ ์•„๋ž˜์™€ ๊ฐ™์ด Unwind segue๊ฐ€ ์ƒ๊ฒผ์„๊ฑฐ์—์š”.

 

์—ฌ๊ธฐ์— identifier๋ฅผ ์ ์–ด์ฃผ์„ธ์š”!

๊ทธ ๋‹ค์Œ DViewController๋กœ ์ด๋™ํ•ด์„œ ์›ํ•˜๋Š” ์œ„์น˜์— performSegue๋ฅผ ์‹คํ–‰์‹œ์ผœ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

 performSegue(withIdentifier: "์ •ํ•ด์ค€ ์•„์ด๋ดํ‹ฐํ”ผ์–ด", sender: nil)

 

์ด๋ ‡๊ฒŒ ํ•˜์‹œ๋ฉด D์ปจํŠธ๋กค๋Ÿฌ์—์„œ A์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์„๊ฒ๋‹ˆ๋‹ค!


 

์ด๋ ‡๊ฒŒ ์˜ค๋Š˜์€ unwindํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

ํ˜น์‹œ๋ผ๋„ ํ‹€๋ฆฐ ์ ์ด ์žˆ๊ฑฐ๋‚˜ ์ง€์ ํ•˜์‹ค ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€