SwiftUI에서 navigationPath 변수를 EnvironmentObject로 선언 후 사용하는 예제 입니다.
NavigationPathObject.Swift 클래스 생성
변수를 ObservableObject 형태로 만들어줘야 합니다
import Foundation
import SwiftUI
class NavigationPathObject : ObservableObject {
@Published var navigationPath = NavigationPath()
}
처음 화면
navigationPathObject를 StateObject로 선언 합니다.
그리고 두번째 화면으로 넘어갈때에는 .environmentObject()로 두번째 화면한테 environmentObject 가 무엇인지 알려줘야 합니다.
import Foundation
import SwiftUI
struct IntroView: View {
@StateObject var navigationPathObject = NavigationPathObject()
var body: some View {
NavigationStack(path: $navigationPathObject.navigationPath) {
VStack {
}
.navigationDestination(for: String.self) { view in
if view == "AgreeView" {
AgreeView()
.environmentObject(self.navigationPathObject)
}
}
.task() {
startTask()
}
}
}
func startTask() {
// 페이지 이동
navigationPathObject.navigationPath.append("AgreeView")
}
}
두번째 화면
navigationPathObject를 EnvironmentObject로 선언 합니다.
import Foundation
import SwiftUI
struct AgreeView: View {
@EnvironmentObject var navigationPathObject: NavigationPathObject
var body: some View {
VStack {
}
.task() {
startTask()
}
}
func startTask() {
}
}
'개발 - iOS SwiftUI' 카테고리의 다른 글
iOS SwiftUI current View 상태 관리 예제 (0) | 2023.11.05 |
---|---|
iOS SwiftUI HTTP Multipart POST 예제 (0) | 2023.10.27 |
iOS SwiftUI 위치 사용권한 요청 예제 (0) | 2023.10.23 |
iOS SwiftUI Firebase didRegisterForRemoteNotificationsWithDeviceToken 호출 안됨 (0) | 2023.10.23 |
iOS SwiftUI Xcode Firebase 패키지 추가 방법 (0) | 2023.10.19 |