-
[SwiftUI] 쌓인 NavigationLink 한번에 없애기Swift/SwiftUI 2022. 11. 27. 22:52
import SwiftUI class NavigationModel: ObservableObject { @Published var firstIsActive = false @Published var secondIsActive = false @Published var thirdIsActive = false func returnToView2() { firstIsActive = false } } struct ContentView: View { var body: some View { NavigationView { Root() } .environmentObject(NavigationModel()) } } struct Root: View { @EnvironmentObject var navModel: NavigationModel var body: some View { NavigationLink("Go to First", destination: First(), isActive: $navModel.firstIsActive) .isDetailLink(false) .navigationTitle("Root") } } struct First: View { @EnvironmentObject var navModel: NavigationModel var body: some View { NavigationLink("Go to Second", destination: Second(), isActive: $navModel.secondIsActive) .isDetailLink(false) .navigationTitle("First") } } struct Second: View { @EnvironmentObject var navModel: NavigationModel var body: some View { NavigationLink("Go to Third", destination: Third(), isActive: $navModel.thirdIsActive) .isDetailLink(false) .navigationTitle("Second") } } struct Third: View { @EnvironmentObject var navModel: NavigationModel var body: some View { Button("Go back to Root", action: navModel.returnToView2) .navigationTitle("Third") } }
'Swift > SwiftUI' 카테고리의 다른 글
[SwiftUI] .transition(.move(edge: Edge))) - 방향성있는 애니메이션을 구현해보자 (0) 2023.01.13 [SwiftUI] MVI Design Pattern 이란? (0) 2022.12.26 [SwiftUI] List 에서 기본 스타일 빼고 SwipeAction 사용하기 (0) 2022.11.17 [SwiftUI] 스켈레톤을 만들어주는 내장 기능 : redacted (0) 2022.11.14 [SwiftUI] StateObject 을 init 에서 init 해보자 (0) 2022.11.05