[SwiftUI] NavigationView, NavigationStack, navigationTitle

2024. 4. 15. 13:37ยท๐ŸŽ Dev/SwiftUI

 

 

 

 

 

Topic:

- NavigationTitle ๋„ฃ๊ธฐ

- NavigationItem ์„ค์ •

 

 

 

 

์ถœ์ฒ˜: ๊ณต์‹๋ฌธ์„œ

 

 

 

SwiftUI ๋ธ”๋กœ๊ทธ๊ธ€๋“ค์„ ์ฐธ๊ณ ํ•˜๊ธฐ๊ฐ€ ๊ฐ€๋” ์• ๋งคํ•˜๋‹ค๊ณ  ๋А๊ปด์งˆ ๋•Œ๊ฐ€ ์žˆ๋Š”๋ฐ, ์•„๋ฌด๋ž˜๋„ ์• ํ”Œ์ด ๊ณ„์† ๊ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ์ค‘์ด๋ผ ๊ณผ๊ฑฐ(๋ผ๊ธฐ์—” ๋น„๊ต์  ์ตœ๊ทผ์ด์ง€๋งŒ)์— ์“ฐ์—ฌ์ง„ ๊ธฐ์ˆ ๋“ค ์ค‘ Deprecated ๋œ ๊ฒŒ ๋งŽ๋‹ค๋Š” ์  ๊ฐ™๋‹ค.

 

์‹ค์ œ๋กœ NavigationView๋ฅผ ์‚ฌ์šฉํ•ด์„œ navigationTitle์„ ๋‹จ ๋ธ”๋กœ๊ทธ ๊ธ€๋“ค์ด ๋งŽ์•˜๋Š”๋ฐ, ํ˜„์žฌ๋Š” Deprecated ๋˜์—ˆ๋‹ค. ๊ทธ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ NavigationStack์ด๋‹ค.

 

 

 

 

 

 

 

์ถœ์ฒ˜: ๊ณต์‹๋ฌธ์„œ

 

 

๋‹ค๋ฅธ ์Šคํƒ๋“ค ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ NavigationStack์ด ๋๋‚˜๋Š” ์ค‘๊ด„ํ˜ธ ๋์—.navigationTitle("Title Text")๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ๋„ค๋น„๊ฒŒ์ด์…˜ ํƒ€์ดํ‹€์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ, navigationBarTitleDisplayMode ์„ ํ†ตํ•ด ํƒ€์ดํ‹€์˜ ์Šคํƒ€์ผ์„ ์กฐ์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

 

์˜ต์…˜์œผ๋กœ automatic, inline, large ์„ธ ๊ฐœ๊ฐ€ ์žˆ๋‹ค. ๊ฐ€์žฅ ์ต์ˆ™ํ•œ ํ˜•ํƒœ์˜ ๋„ค๋น„๊ฒŒ์ด์…˜ ํƒ€์ดํ‹€์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Inline์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค!

 

 

 

1. automatic

2. inline

 

 

3. large

 

 

 

(automatic๊ณผ large๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์—†์–ด๋ณด์ธ๋‹ค,,,,)

 

 

 

 

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์„ค์ •๋ทฐ ์ฝ”๋“œ:

 

- ๋„ค๋น„๊ฒŒ์ด์…˜ ์Šคํƒ ์‚ฌ์šฉ

- ๋„ค๋น„๊ฒŒ์ด์…˜ ํƒ€์ดํ‹€ ์กด์žฌ

- ํˆด๋ฐ” ์•„์ดํ…œ ์กด์žฌ

 

struct SettingView: View {
    var body: some View {
        
        NavigationStack {
            
            VStack {
                
                Text("ํ‘ธ์‹œ ์•Œ๋ฆผ")
                    .font(.system(size: 18, weight: .bold))
                    .position(x: 50, y: 20)
                    .frame(height: 30)
                
                //์„ธํŒ… ๋ฆฌ์ŠคํŠธ
                SettingListView()
                
                Spacer()
                
            } 
            //๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ์„ค์ •
            .navigationTitle("์„ค์ •") //ํƒ€์ดํ‹€
            .navigationBarTitleDisplayMode(.inline) //์Šคํƒ€์ผ
            .toolbar{
                ToolbarItemGroup(placement: .topBarLeading) {
                    Button(action: {
                        print("๋’ค๋กœ๊ฐ€๊ธฐ ํด๋ฆญ")
                    }, label: {
                        Image(systemName: "chevron.backward")
                            .foregroundStyle(.black)
                    })
                }
                ToolbarItemGroup(placement: .topBarTrailing) {
                    Button(action: {
                        print("ํ™ˆ ํด๋ฆญ")
                    }, label: {
                        Image(systemName: "house.fill")
                            .foregroundStyle(.black)
                    })
                }
            } // ** ํˆด๋ฐ”
        }
        
    }
}

 

 

 

 

 

 

 

 

https://developer.apple.com/documentation/swiftui/view/navigationbartitledisplaymode(_:)

 

navigationBarTitleDisplayMode(_:) | Apple Developer Documentation

Configures the title display mode for this view.

developer.apple.com

https://developer.apple.com/documentation/swiftui/navigationview

 

NavigationView | Apple Developer Documentation

A view for presenting a stack of views that represents a visible path in a navigation hierarchy.

developer.apple.com

 

https://developer.apple.com/documentation/swiftui/navigationstack

 

NavigationStack | Apple Developer Documentation

A view that displays a root view and enables you to present additional views over the root view.

developer.apple.com

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐ŸŽ Dev > SwiftUI' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[SwiftUI] Property Wrapper ์ด์ •๋ฆฌ  (0) 2024.07.26
[SwiftUI] Frame  (0) 2024.07.22
[SwiftUI] @State  (0) 2024.05.22
[SwiftUI] Info.plist  (0) 2023.11.20
[SwiftUI] VStack vs LazyVStack  (5) 2023.11.06
'๐ŸŽ Dev/SwiftUI' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [SwiftUI] Frame
  • [SwiftUI] @State
  • [SwiftUI] Info.plist
  • [SwiftUI] VStack vs LazyVStack
Callie_
Callie_
  • Callie_
    CalliOS
    Callie_
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • ๐ŸŽ APPLE
      • ๐ŸŽ Dev
        • Swift
        • UIKit
        • SwiftUI
        • Issue
        • ๊ตฌํ˜„
      • ๐ŸŽ Design
        • HIG
      • โš™๏ธ CS
      • ๐Ÿ’ก ์•Œ๊ณ ๋ฆฌ์ฆ˜
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
        • ๋ฐฑ์ค€
      • ๐ŸŸ๏ธ ์ง๊ด€๋กœ๊ทธ (์ถœ์‹œ์•ฑ)
        • ์—…๋ฐ์ดํŠธ
      • ๐ŸŒฑ SeSAC iOS 3๊ธฐ
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Swift
    ๋„คํŠธ์›Œํฌํ†ต์‹ 
    .OverFullScreen
    apply
    Infoํƒญ
    ios
    SeSAC
    IBAction
    SwiftUI
    CocoaTouchFramework
    ํ™”๋ฉด์ „ํ™˜
    clipsToBound
    cornerradius
    addTarget
    .fullScreen
    ์ƒ๋ช…์ฃผ๊ธฐ
    modalPresentStyle
    DidEndOnExit
    Snapshot
    diffable
    layer.shadow
    Entry Point
    CustomView
    stroyboard
    IBOutlet
    Enum
    TapGestureRecognizer
    assets
    DiffableDataSource
    TableViewCell
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
Callie_
[SwiftUI] NavigationView, NavigationStack, navigationTitle
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.