SwiftUI:如何将 NavigationLink 在表单中居中

SwiftUI: How to center NavigationLink inside of a Form

抱歉,如果这是 asked/answered;我正在尝试在表单内显示 NavigationLink,但希望它居中。我可以用一个使用 HStack 和 Spacers 的 Button 来做到这一点; NavigationLink 有点顽固:

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView {
            Form {
                HStack {

                    //BUTTON CENTERS WITH SPACERS

                    Spacer()
                    Button(action: {}, label: {
                        Text("Button")
                    })
                    Spacer()
                }
                
                HStack {

                    //NAVIGATIONLINK IGNORES SPACERS

                    Spacer()
                    NavigationLink(
                        destination: Text("Destination"),
                        label: {
                     Text("Navigate")    
                    })
                    Spacer()
                }
            }
        }
    }
}

我喜欢这样做的一种方法是创建一个空导航 link。

@State var someBoolBinding = false

//Body

NavigationLink(destination: YourDestView(), isActive: $someBoolBinding) {}

然后创建一个带有切换按钮的自定义按钮。

Button("Go Here") {
   someBoolBinding.toggle()
}

您可以使用任何按钮,甚至是自定义按钮,甚至是 onTapGesture,只需更改该布尔值即可。从那里开始,它就像将任何其他元素居中一样简单,而且您不必依赖呈现给您的“导航 Link”样式。或者你可以这样做。

 NavigationLink(destination: RegisterWithEmailView(), isActive: $someBoolBinding) {
                        Button("Go To some View", action: {
                            someBoolBinding.toggle()
                        })
                    }