Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 애니메이션
- uitableview
- combine
- UICollectionView
- 리팩토링
- ios
- rxswift
- SWIFT
- Xcode
- ribs
- RxCocoa
- Observable
- tableView
- MVVM
- HIG
- 리펙터링
- 클린 코드
- 스위프트
- clean architecture
- collectionview
- Protocol
- 리펙토링
- Refactoring
- Human interface guide
- UITextView
- swiftUI
- Clean Code
- map
- uiscrollview
- swift documentation
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - SwiftUI] NavigationView, NavigationLink 사용 방법 본문
NavigationView
- 뷰들의 관계를 push와 pop을 통해 계층 관계를 이루게끔 하는 뷰 (수평 관계는 TabView로 사용)
- iOS 16.0부터 Deprecated되었다는게 가장 중요
- iOS 16.0부터는 NavigationStack 사용
NavigationView, NavigationLink 사용 방법
- 클로저 하위 뷰들을 안에넣어서 사용
- cf) 가장 상위에는 TabView 그 다음에 NavigationView가 위치해야함
struct ContentView: View {
var body: some View {
NavigationView {
Text("Hello, world!")
}
}
}
- NavigationLink
- 네비게이션 형태로 presentation을 제어하는 뷰
struct NavigationLink<Label, Destination> where Label : View, Destination : View
- 도착지에 해당하는 뷰와 타이틀에 들어갈 Label를 넣어서 사용
- NavigationView 하위에서 사용
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink(destination: Text("Detail View")) {
Text("Hello World")
}
}
}
}
- 하나의 NavigationView안에 여러개의 NavigationLink 사용 가능
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: Text("Detail View1")) {
Text("Link1")
}
NavigationLink(destination: Text("Detail View2")) {
Text("Link2")
}
NavigationLink(destination: Text("Detail View3")) {
Text("Link3")
}
}
}
}
}
- List안에 NavigationLink를 사용하면 아래와 같은 화면이 생성
var body: some View {
NavigationView {
List { // <-
NavigationLink(destination: Text("Detail View1")) {
Text("Link1")
}
NavigationLink(destination: Text("Detail View2")) {
Text("Link2")
}
NavigationLink(destination: Text("Detail View3")) {
Text("Link3")
}
}
}
}
.navigationTitle
- NavigationView 하위 뷰에 타이틀을 붙이는 것
- NavigationView 하위 뷰에 .navigationTitle(:)로 사용
var body: some View {
NavigationView {
List {
NavigationLink(destination: Text("Detail View1")) {
Text("Link1")
}
NavigationLink(destination: Text("Detail View2")) {
Text("Link2")
}
NavigationLink(destination: Text("Detail View3")) {
Text("Link3")
}
}
.navigationTitle("Title") // <-
}
}
* 전체 코드: https://github.com/JK0369/ExNavigationView
* 참고
https://developer.apple.com/documentation/swiftui/navigationlink
https://developer.apple.com/documentation/swiftui/navigationview
https://developer.apple.com/documentation/swiftui/navigationstack
'iOS 기본 (SwiftUI)' 카테고리의 다른 글
[iOS - SwiftUI] List 사용방법 (리프레시, multiSelection, Section, Hierarchical List, ListStyle) (0) | 2022.08.25 |
---|---|
[iOS - SwiftUI] HStack, VStack, ZStack, LazyStack 사용 방법 (+ @unknown, @frozen) (0) | 2022.08.24 |
[iOS - SwiftUI] Stepper 사용 방법 (0) | 2022.08.22 |
[iOS - SwiftUI] Slider 사용 방법 (0) | 2022.08.21 |
[iOS - SwiftUI] DatePicker, ColorPicker 사용 방법 (0) | 2022.08.20 |
Comments