SwiftUI 中新的 NavigationStack 过渡,如何从默认幻灯片更改为自定义或显示?

Sky*_*erX 4 swiftui swiftui-navigationlink swiftui-animation swiftui-navigationsplitview swiftui-navigationstack

我有 NavigationStack 及其自己的导航链接,用于 iOS16 开发。

如何更改要显示的默认幻灯片过渡或自定义过渡?

另外,您是否在 NavigationStack 或 NavigationLink 上应用转换?

这是我的代码:

import SwiftUI

struct TestView: View {
    var body: some View {
        NavigationStack() {
            NavigationLink ("Link", value: "Any Value")
                .navigationDestination(for: String.self) { textValue in
                    destinationView(textValue: textValue)
                }
        }
    }
}

struct destinationView: View {
    let textValue: String
    var body: some View {
            Text(textValue)
    }
}
Run Code Online (Sandbox Code Playgroud)

如何更改默认转换?

小智 5

我不认为 SwiftUI 在使用NavigationStack/时原生支持视图之间的自定义转换NavigationSplitView

有一个名为NavigationTransitions的包支持NavigationStackiOS 16。

如何使用:

将包添加到您的项目并导入

import NavigationTransitions
Run Code Online (Sandbox Code Playgroud)

然后:

NavigationStack {
    // your content
}
.navigationTransition(.fade(.cross))
Run Code Online (Sandbox Code Playgroud)

您还可以组合预定义的过渡或制作自定义过渡。