Post

Replies

Boosts

Views

Activity

NavigationLink automatically pop
Xcode Version 13.2.1 (13C100) iOS15.2 Swift5 If repeat the navigation about 10 times, it will return FirstView automatically. The expected output is to move from 0 to 100 with the next button. I am developing a list navigation app with SwiftUI. A navigation bug occurred in the code and procedure shown below. 1.tap item in FirstView. 2.open SecondView. 3.open ThirdView. 4.tap next button navigate to SecondView. Repeat steps 2-4 about 10 times navigate SecondView when pop View to FirstView. How can I solve it? import SwiftUI final class ViewModel: ObservableObject { @Published var currentIndex: Int? public func next() { if let currentIndex = self.currentIndex { if currentIndex < 100 { self.currentIndex = currentIndex + 1 } else { self.currentIndex = nil } } } } struct FirstView: View { @StateObject var vm = ViewModel() var body: some View { NavigationView { List(0..<100) { i in NavigationLink(String(i), tag: i, selection: $vm.currentIndex) { SecondView(vm: vm) }.isDetailLink(false) } } .navigationViewStyle(StackNavigationViewStyle()) .navigationTitle("First View") } } struct SecondView: View { @ObservedObject var vm: ViewModel var body: some View { VStack { NavigationLink("go to third") { ThirdView(vm: vm) }.isDetailLink(false) if let currentIndex = vm.currentIndex { Text("currentIndex: \(currentIndex)") } } .navigationTitle("Second View") } } struct ThirdView: View { @ObservedObject var vm: ViewModel var body: some View { VStack { Button(action: vm.next) { Text("next") } if let currentIndex = vm.currentIndex { Text("currentIndex: \(currentIndex)") } } .navigationTitle("Third View") } }
0
0
438
Dec ’21