簡體   English   中英

SwiftUI 通過多個屏幕導航

[英]SwiftUI Navigation through multiple screens

我對導航在 SwiftUI 中的工作方式有點困惑。 只有開始導航的視圖需要NavigationView嗎? 我有一個帶有NavigationView的視圖,該視圖具有到第二個視圖的NavigationLink 然后第二個視圖具有到第三個也是最后一個視圖的NavigationLink

但是,當我的第二個視圖導航到第三個視圖時,我在日志中收到以下消息:

unbalanced calls to begin/end appearance transitions for <_TtGC7SwiftUI19UIHostingControllerVS_7AnyView_: 0x7f85d844bf90>.

我不知道我是否正確處理了多個屏幕的導航,並且我遇到了一些非常奇怪的行為,在我的第二個屏幕上按 Next 會以某種方式讓我回到我的第一個屏幕......

//This is the link in my first view, my seconds link is the same except it does to my next step and the tag is different
NavigationLink(
    destination: PasswordView(store: self.store),
    tag: RegisterState.Step.password,
    selection: .constant(store.value.step)
)

SwiftUI 中的導航有點棘手,創建一個導航視圖后,您無需在第二或第三視圖中再次創建。 我不確定你是如何首先創建它的。 這是導航如何工作的示例。

import SwiftUI

struct ContentView: View {
       var body: some View {
            NavigationView {
                VStack {
                    NavigationLink(destination: SecondView()) {
                    Text("Show Second View")
                }.navigationBarTitle("FirstView", displayMode: .inline)
            }
        }
    }
}

struct SecondView: View {
    var body: some View {
        NavigationLink(destination: ThirdView()) {
            Text("Show Third view")
        }.navigationBarTitle("SecondView", displayMode: .inline)
    }    
}

struct ThirdView: View {
    var body: some View {
        Text("This is third view")
            .navigationBarTitle("ThirdView", displayMode: .inline)
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM