점진적 과부하 개발 블로그

SwiftUI NavigationView 알아보기 본문

Swift

SwiftUI NavigationView 알아보기

지용빡 2022. 6. 17. 23:32
반응형
SwiftUI NavigationView 알아보기
UINavigationController 와 NavigationView의 차이점
  • UINavigationController
    • UIKit
// UINavigationController = UIKit

import UIKit

let navigationController = UINavigationController(rootViewController: SampleViewController())

final class SampleViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.navigationItem.title = "NavigationController"
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(systemName: "house"), style: .plain, target: self, action: #selector(didTapRightBarButton))
    }
    
    @objc private func didTapRightBarButton() {
        print("did tap right bar button!")
    }
}
  • NavigationView
    • SwiftUI
    • macOS나 iPadOS 등 자동으로 대응이 가능하다. 
// NavigationView = SwiftUI

import SwiftUI

struct SampleNavigationView: View {
    var body: some View {
        NavigationView {
            Text("NavigationView")
                .navigationTitle("Title")
                .navigationBarItems(
                    trailing:
                        Button(
                            action: {
                                print("did tap right bar button")
                            }, label: {
                                Image(systemName: "house")
                            }
                        )
                )
        }
    }
}

struct SampleNavigationView_Previews: PreviewProvider {
    static var previews: some View {
        SampleNavigationView()
    }
}
  • NavigationLink
    • 다른 화면으로 전환을 하고 싶을때 사용하면 된다.
import SwiftUI

struct SampleView: View {
    var body: some View {
        Text("화면")
    }
}

struct SampleNavigationView: View {
    var body: some View {
        NavigationView {
            List {
                NavigationLink("Push Button", destination: SampleView())
            }
                .navigationTitle("Title")
                .navigationBarItems(
                    trailing:
                        Button(
                            action: {
                                print("did tap right bar button")
                            }, label: {
                                Image(systemName: "house")
                            }
                        )
                )
        }
    }
}

struct SampleNavigationView_Previews: PreviewProvider {
    static var previews: some View {
        SampleNavigationView()
    }
}
반응형

'Swift' 카테고리의 다른 글

SwiftUI Alert 알아보기  (0) 2022.06.21
Swift Combine을 사용한 데이터 표시 구현  (0) 2022.06.18
Swift HStack  (0) 2022.06.12
Swift List, LazyHStack 차이점 알아보기  (0) 2022.06.10
Swift) UITabBarController와 TabView의 차이점  (0) 2022.06.08