[ Swift UI 강좌 ] 2. 스위프트 iOS - 네비게이션 이동하기
- Coding/스위프트 UI
- 2021. 2. 3. 14:33
이번에는 스위프트 UI를 통해서 네비게이션 컨트롤러?는 아니고 네비게이션 뷰를 만들어보겠습니다. 저도 좀 생소하긴 한데요. 스위프트 UI는 별도로 컨트롤러가 없는 것 같습니다. 물론 더 공부해봐야 알겠지만 네비게이션 컨트롤러도 뷰로 표현하는 것 같군요. 일단 네비게이션은 iOS에서 매우 중요하기 때문에 네비게이션 뷰를 통해서 간단하게 화면 전환하는 방법을 알아보겠습니다.
저번 강좌에서 간단한 버튼 이벤트를 만들어봤습니다. 필요하시면 참고하시길 바랍니다.
[ Swift UI 강좌 ] 1. 스위프트 iOS - 버튼 이벤트 만들기
스위프트 UI 가 나온지 벌써 1년이 넘어갑니다. 계속 스위프트와 오토레이아웃으로 업무를 하다보니까 배울 시간이 없었는데요. 이제 조금씩 배워보려고합니다. 개인 정리차 오늘 부터 계속 스
tttap.tistory.com
1. 프로젝트를 생성합니다. Navigation 이라고 만들어볼게요. 인터페이스는 SwiftUI 라이프 사이클은 SwiftUI App 언어는 Swift 로 설정합니다.
2. ContentView 파일을 열고 기존에 있던 Hello, world 텍스트를 제거합니다.
3. body에 NavigationView를 추가해줍니다. .navigationTitle을 통해서 네비게이션의 타이틀을 결정할 수 있습니다.
NavigationView {
Text("Hello")
.navigationTitle("첫번째 페이지")
}
4. NavigationLink를 만들고 저번에 배운 VStack을 이용해서 Text 와 NavigationLink를 Vertical 스택으로 묶어줍니다.
NavigationView {
VStack {
Text("Hello")
.navigationTitle("첫번째 페이지")
NavigationLink(
destination: NextView(),
label: {
Text("Navigate")
})
}
}
5. 이제 잘 이동하는 지 볼께요 오른쪽 프리뷰에서 Navigate 라는 버튼을 누르면 다음 페이지로 이동하는 것을 볼 수 있습니다.
6. 지금은 네비게이션으로 이동하는 페이지가 그냥 Text로 되어 있습니다. 이 destination 속성을 실제 뷰 객체로 바꿔보겠습니다. 다음 코드를 입력해서 새로운 뷰를 생성합니다.
struct NextView: View {
var body: some View {
Text("두번째 화면")
}
}
7. 이제 destination 속성에 NextView() 객체를 생성해서 이동할 목적지를 변경해줍니다.
8. 마지막으로 두번째 화면인 NextView에도 NavigationLink를 추가해서 FinalView로 이동하는 코드를 추가합니다.
9. 전체 코드입니다.
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
Text("Hello")
.navigationTitle("첫번째 페이지")
NavigationLink(
destination: NextView(),
label: {
Text("Navigate")
})
}
}
}
}
struct NextView: View {
var body: some View {
VStack {
Text("두번째 화면")
NavigationLink(
destination: FinalView(),
label: {
Text("Navigate")
})
}
}
}
struct FinalView: View {
var body: some View {
Text("마지막 화면")
}
}
struct ContentView_Previews: PrviewProvider {
static var previews: some View {
ContentView()
}
}
'Coding > 스위프트 UI' 카테고리의 다른 글
[ Swift UI 강좌 ] 5. 스위프트 iOS - 날씨정보 뷰 만들기 (0) | 2021.02.11 |
---|---|
[ Swift UI 강좌 ] 4. 스위프트 iOS - 테이블 뷰 만들기 (0) | 2021.02.06 |
[ Swift UI 강좌 ] 3. 스위프트 iOS - @State 속성 @Binding 속성 (0) | 2021.02.05 |
[ Swift UI 강좌 ] 1. 스위프트 iOS - 버튼 이벤트 만들기 (0) | 2021.01.22 |