1οΈβ£ μ μ
κ³μΈ΅μ μΈ μ½ν
μΈ λ₯Ό νμνκΈ° μν μ€ν κΈ°λ° μ²΄κ³λ₯Ό μ μνλ 컨ν
μ΄λ λ·° 컨νΈλ‘€λ¬
@MainActor
class UINavigationController : UIViewController
2οΈβ£ μ€λͺ
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ νμ μΈν°νμ΄μ€μμ νλ μ΄μμ μμ λ·° 컨νΈλ‘€λ¬λ₯Ό κ΄λ¦¬νλ
container view controller
- μ΄λ¬ν μ νμ μΈν°νμ΄μ€μμλ ν λ²μ νλμ μμ λ·° 컨νΈλ‘€λ¬λ§ νμλ¨
- λ·° 컨νΈλ‘€λ¬μμ νλͺ©μ μ ννλ©΄ μλ‘μ΄ λ·° 컨νΈλ‘€λ¬κ° μ λλ©μ΄μ
μ μ¬μ©νμ¬ νλ©΄μ
push
λλ©°, μ΄μ λ·° 컨νΈλ‘€λ¬λ μ¨κΉ
- μΈν°νμ΄μ€ μλ¨μ λ΄λΉκ²μ΄μ
λ°μμ λ€λ‘ κ°κΈ° λ²νΌμ ννλ©΄ μ΅μμ λ·° 컨νΈλ‘€λ¬κ° μ κ±°λμ΄ μ΄μ μ μλ λ·° 컨νΈλ‘€λ¬κ° λνλ¨
- μ±μμ κ΄λ¦¬νλ κ³μΈ΅ λ°μ΄ν°μ ꡬμ±μ λͺ¨λ°©νκΈ° μν΄ λ΄λΉκ²μ΄μ
μΈν°νμ΄μ€λ₯Ό μ£Όλ‘ μ¬μ©ν¨
- κ³μΈ΅μ κ° μμ€μμ ν΄λΉ μμ€μ μ½ν
μΈ λ₯Ό νμνλ μ μ ν νλ©΄(μ¬μ©μ μ μ λ·° 컨νΈλ‘€λ¬μ μν΄ κ΄λ¦¬λ¨)μ μ 곡
- λ£¨νΈ λ·°λ₯Ό μ μΈν λͺ¨λ λ·°μμ λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ κ³μΈ΅ ꡬ쑰μμ μλ‘ μ΄λν μ μλλ‘ λ€λ‘ κ°κΈ° λ²νΌμ μ 곡
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬ κ°μ²΄λ μμ λ·° 컨νΈλ‘€λ¬λ₯Ό κ΄λ¦¬νκΈ° μν΄ μμλλ‘ μ λ ¬λ λ°°μ΄μΈ λ΄λΉκ²μ΄μ
μ€νμ μ¬μ©
- λ°°μ΄μ 첫 λ²μ§Έ λ·° 컨νΈλ‘€λ¬λ λ£¨νΈ λ·° 컨νΈλ‘€λ¬λ‘μ μ€νμ κ°μ₯ μλμ μμΉ
- λ°°μ΄μ λ§μ§λ§ λ·° 컨νΈλ‘€λ¬λ μ€νμ κ°μ₯ μμ μλ νλͺ©μΌλ‘μ νμ¬ νμλλ λ·° 컨νΈλ‘€λ¬λ₯Ό λνλ
- μ΄ ν΄λμ€μ λ©μλλ μΈκ·Έμ¨μ΄λ₯Ό μ¬μ©νμ¬ λ·° 컨νΈλ‘€λ¬λ₯Ό μ€νμ μΆκ°νκ±°λ μ κ±°ν μ μμ
- μ¬μ©μλ λ΄λΉκ²μ΄μ
λ°μ λ€λ‘ κ°κΈ° λ²νΌμ΄λ μΌμͺ½ κ°μ₯μ리 μ€μμ΄ν μ μ€μ²λ₯Ό μ¬μ©νμ¬ μ΅μμ λ·° 컨νΈλ‘€λ¬μ μ κ±°κ° κ°λ₯ν¨
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ μΈν°νμ΄μ€ μλ¨μ λ΄λΉκ²μ΄μ
λ°μ μΈν°νμ΄μ€ νλ¨μ μ νμ μΈ ν΄λ°λ₯Ό κ΄λ¦¬
- λ΄λΉκ²μ΄μ
λ°λ νμ μ‘΄μ¬νλ©° λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬ μ체μμ κ΄λ¦¬λλ©°, μμ λ·° 컨νΈλ‘€λ¬κ° μ 곡νλ λ΄μ©μ μ¬μ©νμ¬ λ΄λΉκ²μ΄μ
λ°λ₯Ό μ
λ°μ΄νΈν¨
isToolbarHidden
μμ±μ΄ false
μΈ κ²½μ°, λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ λ§μ°¬κ°μ§λ‘ μ΅μμ λ·° 컨νΈλ‘€λ¬κ° μ 곡νλ λ΄μ©μΌλ‘ ν΄λ°λ₯Ό μ
λ°μ΄νΈν¨
π UINavigationControllerDelegate
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ λΈλ¦¬κ²μ΄νΈ κ°μ²΄μ ν¨κ» λμμ μ‘°μ¨ν¨
- λΈλ¦¬κ²μ΄νΈ κ°μ²΄λ λ·° 컨νΈλ‘€λ¬μ νΈμ
push
λλ νpop
λμμ μ¬μ μνκ±°λ μ¬μ©μ μ μ μ λλ©μ΄μ
μ νμ μ 곡νλ©°, λ΄λΉκ²μ΄μ
μΈν°νμ΄μ€μ μ νΈ λ°©ν₯μ μ§μ ν μ μμ
- μ 곡νλ λΈλ¦¬κ²μ΄νΈ κ°μ²΄λ
UINavigationControllerDelegate
νλ‘ν μ½μ μ€μν΄μΌ ν¨
- μλμ μ΄λ―Έμ§λ λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬μ ν΄λΉ κ΄λ¦¬ λμ κ°μ²΄λ€ κ°μ κ΄κ³λ₯Ό 보μ¬μ€
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬μ μ§μ λ μμ±μ μ¬μ©νμ¬ μ΄λ¬ν κ°μ²΄λ€μ μ κ·Όν μ μμ

π Navigation controller views
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ 컨ν
μ΄λ λ·° 컨νΈλ‘€λ¬μ΄λ©°, λ€λ₯Έ λ·° 컨νΈλ‘€λ¬μ λ΄μ©μ μ체μ μΌλ‘ λ΄λΆμ μλ² λν¨
μλ² λ
- νλμ λ·° 컨νΈλ‘€λ¬κ° λ€λ₯Έ λ·° 컨νΈλ‘€λ¬μ μ½ν
μΈ λ₯Ό ν¬ν¨νκ³ κ·Έ μμμ νμλλ κ²μ μλ―Έ
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬μμ λ·° 컨νΈλ‘€λ¬λ₯Ό μλ² λνλ©΄ λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ ν΄λΉ λ·° 컨νΈλ‘€λ¬μ μ½ν
μΈ λ₯Ό μμ μ λ·° μμ νμ
- μΈν°νμ΄μ€ λΉλμμ μλ² λ νλ λ²
Xcode
->Editor
-> Embed In
-> Navigation Controller
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬μ λ·°λ
view
μμ±μ ν΅ν΄ μ‘μΈμ€ν μ μμ
- μλμ μμλ λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬μ
view
μμ±μ μ¬μ©νμ¬ ν΄λΉ λ·°μ μ‘μΈμ€ν¨
let navigationController = UINavigationController(rootViewController: yourRootViewController)
let navigationView = navigationController.view
navigationView.backgroundColor = UIColor.white
navigationView.layer.cornerRadius = 10
- μ΄ λ·°μλ λ΄λΉκ²μ΄μ
λ°, μ νμ μΈ ν΄λ° λ° μ΅μμ λ·° 컨νΈλ‘€λ¬μ ν΄λΉνλ μ½ν
νΈ λ·°κ° ν¬ν¨λ¨
- μλμ μ΄λ―Έμ§λ μ΄λ¬ν λ·°λ€μ΄ μ‘°ν©λμ΄ μ 체μ μΈ λ΄λΉκ²μ΄μ
μΈν°νμ΄μ€λ₯Ό νμνλ λ°©λ²μ 보μ¬μ€
- μ΄ κ·Έλ¦Όμμ λ΄λΉκ²μ΄μ
μΈν°νμ΄μ€λ ν λ° μΈν°νμ΄μ€ μμ μΆκ°λ‘ μλ² λλ¨

- λ΄λΉκ²μ΄μ
λ°μ ν΄λ° λ·°μ λ΄μ©μ λ³κ²½λμ§λ§ λ·° μ체λ λ³κ²½λμ§ μμ
- μ€μ λ‘ λ³κ²½λλ κ²μ λ΄λΉκ²μ΄μ
μ€νμ μ΅μμ λ·° 컨νΈλ‘€λ¬μμ μ 곡λλ μ¬μ©μ μ μ μ½ν
νΈ λ·°λΏμ
content view
provided by the topmost view controller
- μμ λ·° 컨νΈλ‘€λ¬μ μ½ν
νΈ λ·°λ λ΄λΉκ²μ΄μ
μ€νμ 맨 μμ μλ λ·° 컨νΈλ‘€λ¬κ° μ 곡νλ μ€μ νλ©΄ μ½ν
μΈ λ₯Ό λνλ
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ λ΄λΉκ²μ΄μ
λ°μ μ νμ λ΄λΉκ²μ΄μ
ν΄λ°μ μμ±, κ΅¬μ± λ° νμλ₯Ό κ΄λ¦¬ν¨
- λ΄λΉκ²μ΄μ
λ°μ μΈκ΄ κ΄λ ¨ μμ±μ μ¬μ©μ μ μνλ κ²μ νμ©λμ§λ§, νλ μ, λ°μ΄λ λλ μν κ°μ μ§μ λ³κ²½ν΄μλ μ λλ‘ μ λ¨β
- UINavigationBarλ₯Ό μλΈν΄λμ±νλ κ²½μ°
init(navigationBarClass:toolbarClass:)
λ©μλλ₯Ό μ¬μ©νμ¬ λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ₯Ό μ΄κΈ°νν΄μΌ ν¨
μλΈν΄λμ±
- μμμ ν΅ν΄ κΈ°μ‘΄ ν΄λμ€λ₯Ό νμ₯νκ³ μλ‘μ΄ ν΄λμ€λ₯Ό μμ±νλ κ°λ
- κΈ°μ‘΄ ν΄λμ€μ κΈ°λ₯μ νμ₯νκ³ κ°λ³μ μΈ λμμ μ μ
- λ΄λΉκ²μ΄μ
λ°λ₯Ό μ¨κΈ°κ±°λ νμνλ €λ©΄
isNavigationBarHidden
μμ±μ΄λ setNavigationBarHidden(_:animated:)
λ©μλλ₯Ό μ¬μ©
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ λ΄λΉκ²μ΄μ
μ€νμ μλ λ·° 컨νΈλ‘€λ¬μ μ°κ²°λ λ΄λΉκ²μ΄μ
μμ΄ν
κ°μ²΄(
UINavigationItem
ν΄λμ€μ μΈμ€ν΄μ€)λ₯Ό μ¬μ©νμ¬ λ΄λΉκ²μ΄μ
λ°μ λ΄μ©μ λμ μΌλ‘ ꡬμ±
λ΄λΉκ²μ΄μ
μμ΄ν
UINavigationItem
- λ΄λΉκ²μ΄μ
μμ΄ν
μ νμ΄ν, λ° λ²νΌ νλͺ©, νμ΄ν λ·° λ±μ μ 보λ₯Ό κ°μ§κ³ μμΌλ©°, μ΄λ₯Ό μ‘°μνμ¬ λ΄λΉκ²μ΄μ
λ°μ μνλ μ½ν
μΈ λ₯Ό νμν¨
- λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ κ° λ·° 컨νΈλ‘€λ¬μ λ΄λΉκ²μ΄μ
μμ΄ν
μ μ°Έμ‘°νμ¬ λ΄λΉκ²μ΄μ
λ°λ₯Ό μ
λ°μ΄νΈνκ³ , μ΄λ₯Ό ν΅ν΄ νλ©΄μ νμλλ λ΄λΉκ²μ΄μ
λ°μ λ΄μ©μ΄ λμ μΌλ‘ λ³κ²½λ¨
- λ΄λΉκ²μ΄μ
λ°μ μ λ°μ μΈ μΈκ΄μ μ¬μ©μ μ μνλ €λ©΄
UIAppearance API
λ₯Ό μ¬μ©
- λ΄λΉκ²μ΄μ
λ°μ λ΄μ©μ λ³κ²½νλ €λ©΄ μ¬μ©μ μ μ λ·° 컨νΈλ‘€λ¬μ λ΄λΉκ²μ΄μ
μμ΄ν
μ ꡬμ±ν΄μΌ ν¨
π Updating the navigation bar
- μ΅μμ λ·° 컨νΈλ‘€λ¬κ° λ³κ²½λ λλ§λ€ λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ λ΄λΉκ²μ΄μ
λ°λ₯Ό ν΄λΉ λ΄μ©μ λ§κ² μ
λ°μ΄νΈν¨
- ꡬ체μ μΌλ‘, λ΄λΉκ²μ΄μ
컨νΈλ‘€λ¬λ λ΄λΉκ²μ΄μ
λ°μ μΈ κ°μ§ μμΉμΈ μΌμͺ½, κ°μ΄λ°, μ€λ₯Έμͺ½μ νμλλ λ° λ²νΌ νλͺ©μ μ
λ°μ΄νΈν¨ λ° λ²νΌ νλͺ©μ
UIBarButtonItem
ν΄λμ€μ μΈμ€ν΄μ€
- νμμ λ°λΌ μ¬μ©μ μ μ μ½ν
νΈλ‘ νλͺ©μ μμ±νκ±°λ νμ€ μμ€ν
νλͺ©μ μμ±ν μ μμ
- λ΄λΉκ²μ΄μ
λ°μ μμμ λ΄λΉκ²μ΄μ
λ° μ체μ μμ±μΌλ‘ μ μ΄λ¨
tintColor
μμ±μ μ¬μ©νμ¬ λ°μ νλͺ©μ ν΄νΈ μμμ λ³κ²½νκ³ , barTintColor
μμ±μ μ¬μ©νμ¬ λ° μ체μ ν΄νΈ μμμ λ³κ²½ν¨
- λ΄λΉκ²μ΄μ
λ°λ νμ¬ νμλ λ·° 컨νΈλ‘€λ¬μμ ν΄νΈ μμμ μμνμ§ μμ
π The left item
- λ΄λΉκ²μ΄μ
μ€νμ λ£¨νΈ λ·° 컨νΈλ‘€λ¬λ₯Ό μ μΈν λͺ¨λ λ·° 컨νΈλ‘€λ¬μ λν΄μλ λ΄λΉκ²μ΄μ
λ°μ μΌμͺ½μ μλ νλͺ©μ΄ μ΄μ λ·° 컨νΈλ‘€λ¬λ‘μ μ΄λμ μ 곡
μΌμͺ½ λ²νΌμ λ΄μ©μ λ€μκ³Ό κ°μ΄ κ²°μ λ¨
- μλ‘μ΄ μ΅μμ λ·° 컨νΈλ‘€λ¬κ° μ¬μ©μ μ μ μΌμͺ½ λ° λ²νΌ νλͺ©μ κ°μ§κ³ μλ€λ©΄ ν΄λΉ νλͺ©μ΄ νμλ¨
- μ¬μ©μ μ μ μΌμͺ½ λ° λ²νΌ νλͺ©μ μ§μ νλ €λ©΄, λ·° 컨νΈλ‘€λ¬μ λ΄λΉκ²μ΄μ
μμ΄ν
μ
leftBarButtonItem
μμ±μ μ€μ
μ΅μμ λ·° 컨νΈλ‘€λ¬κ° μ¬μ©μ μ μ μΌμͺ½ λ° λ²νΌ νλͺ©μ κ°μ§κ³ μμ§ μμ§λ§, μ΄μ λ·° 컨νΈλ‘€λ¬μ λ΄λΉκ²μ΄μ
μμ΄ν
μ backBarButtonItem μμ±μ κ°μ²΄κ° μλ κ²½μ°, λ΄λΉκ²μ΄μ
λ°λ ν΄λΉ νλͺ©μ νμν©λλ€.
λ·° 컨νΈλ‘€λ¬λ€ μ€ μ΄λ μͺ½λ μ¬μ©μ μ μ λ° λ²νΌ νλͺ©μ μ§μ νμ§ μμ κ²½μ°, κΈ°λ³Έμ μΈ λ€λ‘ κ°κΈ° λ²νΌμ΄ μ¬μ©λλ©°, κ·Έ μ λͺ©μ μ΄μ λ·° 컨νΈλ‘€λ¬μ title μμ±μ κ°μΌλ‘ μ€μ λ©λλ€. (λ΄λΉκ²μ΄μ
μ€νμ λ·° 컨νΈλ‘€λ¬κ° νλλ§ μλ κ²½μ°, λ€λ‘ κ°κΈ° λ²νΌμ νμλμ§ μμ΅λλ€.)
μΆμ²π
πApple Docs: UINavigationController