code๋ฅผ ๋ณด๋‹ค๊ฐ€ unwind segue๋ผ๋Š” ๋…€์„์„ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฒ˜์Œ ๋ณด๋Š” ์นœ๊ตฌ๋ผ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

Unwind Segue

์ผ๋‹จ Unwind๋ผ๋Š” ๋œป์„ ์•Œ์•„๋ณด์ž.

์Œ. ๋ฌด์–ธ๊ฐ€๋ฅผ ํ‘ผ๋‹ค๋Š” ๊ฐœ๋…๊ฐ™๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฌด์—‡์„ ํ‘ธ๋Š” ๊ฑธ๊นŒ?

์›น/์•ฑ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ์ด๋Ÿฐ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. A โ†’ B โ†’ C์™€ ๊ฐ™์ด ํ™”๋ฉด์ด ์ด๋™ํ•˜๋‹ค๊ฐ€, ๋’ค๋กœ Back ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” C โ†’ B โ†’ A ์ˆœ์œผ๋กœ ์ž‘๋™ํ•˜๋ฉด ์•ˆ๋˜๊ณ  C โ†’ A๋กœ ๋ฐ”๋กœ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Home โ†’ Detail ํ™”๋ฉด๊นŒ์ง€๋Š” ์ง„์ž…ํ–ˆ๋Š”๋ฐ, ๋กœ๊ทธ์ธ์ด ์‚ฌ์šฉ์ž๊ฐ€ ์•ˆ๋˜์–ด ์žˆ์–ด์„œ Login์„ ์œ„ํ•œ Modal์ด ๋œจ๊ฒŒ ๋˜๊ณ , ์ด modal์—์„œ ๋กœ๊ทธ์ธ์„ ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋Š” ๋ฐ”๋กœ Home์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ฒ ๋‹ค.

์ด๋Ÿด ๊ฒฝ์šฐ, Storyboard์—์„œ Login โ†’ Home์œผ๋กœ Segue๋ฅผ ์—ฐ๊ฒฐํ•  ๊ฒฝ์šฐ, stack์— VC๊ฐ€ ์Œ“์ด๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋™์ž‘์„ ํ•œ๋‹ค๊ณ  ๋ณด๊ธฐ ์–ด๋ ต๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ Xcode์—์„œ๋Š” Unwind Segue๋ผ๋Š” ๊ฒƒ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฅผ ๊ฑธ์–ด๋‘๋ฉด, ์ค‘๊ฐ„์— ์žˆ๋Š” VC๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜๋ฉด์„œ ์›ํ•˜๋Š” ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Usage

์œ„์—์„œ ๋งํ•œ ์˜ˆ๋ฅผ ์ถ”์ƒ์ ์œผ๋กœ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค. Detail ํ™”๋ฉด์ด ๋ณด์ด๊ณ , Login ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด Modal์ฐฝ์ด ์˜ฌ๋ผ์™€์„œ login, cancel์„ ๋ˆ„๋ฅด๋ฉด ํ™”๋ฉด์ด Home์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

์‚ฌ์šฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ๋‚ด๊ฐ€ ๋Œ์•„๊ฐ€๊ณ ์žํ•˜๋Š” ๋ชฉ์ ์ง€๋ฅผ ์ผ๋‹จ ์•Œ์•„์•ผ ํ•œ๋‹ค. ์œ„ ์˜ˆ์˜ ๊ฒฝ์šฐ, Home์œผ๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Home์ด ๋Œ์•„๊ฐˆ ๋ชฉ์ ์ง€๊ฐ€ ๋˜๊ฒ ๋‹ค.

์ด Home์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ Segue ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.

import UIKit
 
class HomeViewController: UIViewController {
 
    @IBAction func unwindToHome(_ unwindsegue: UIStoryboardSegue) {}
 
}

์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑํ•ด๋‘๋ฉด, Storyboard์˜ Exit ๋ฒ„ํŠผ์— ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ํ•ญ๋ชฉ์ด ์ƒ๊ธด๋‹ค.

์›ํ•˜๋Š” Button์˜ Action์— ์ด Segue๋ฅผ ์—ฐ๊ฒฐํ•ด๋‘๋ฉด ๋์ด๋‹ค.

Reference