Avatar
rei.nakaoka 8/5/2022 7:51 AM
質問失礼します。 以下を参考にSwiftUIのNavigationLinkで複数回画面遷移をした後に一気に最初の画面に戻る実装をしています。記事ではNavigationLinkに.isDetailLink(false)をつけなければ最初のView戻ることはできないと言及されています。 しかし、.isDetailLink(false)をつけない場合や、.isDetailLink(true)にした場合でも同様に最初のViewに戻ることができました。これは、SwiftUIの仕様変更等が原因なのでしょうか??何かご存知の方がいられましたらご教授いただければ幸いです。 https://www.yururiwork.net/archives/148 https://stackoverflow.com/questions/57334455/how-can-i-pop-to-the-root-view-using-swiftui/59662275#59662275 以下ソースコードです。 struct FirstView: View { @State private var isActive = false var body: some View { NavigationView { NavigationLink(destination: SecondView(isFirstViewActive: $isActive), isActive: $isActive) { Button(action: { self.isActive = true }, label: { Text("Forward to Second View.") }) } .navigationBarTitle("First View") } } } struct SecondView: View { @State private var isActive = false @Binding var isFirstViewActive: Bool var body: some View { NavigationLink(destination: ThirdView(isFirstViewActive: $isFirstViewActive), isActive: $isActive) { Button(action: { self.isActive = true }, label: { Text("Forward to Third View.") }) } .isDetailLink(false) //ここをコメントアウトしてもFirstViewに戻れる。 .navigationBarTitle("Second View") } } struct ThirdView: View { @Binding var isFirstViewActive: Bool var body: some View { Button(action: { self.isFirstViewActive = false }, label: { Text("Back to First View.") }) .navigationBarTitle("Third View") } } (edited)
Finally now with Beta 5 we can programmatically pop to a parent View. However, there are several places in my app where a view has a "Save" button that concludes a several step process and