如何通过单击按钮从 Swift UI 中的一个视图导航到另一个视图

How to navigate from one view to another in Swift UI on a click of button

我想在 SwiftUI 中通过单击按钮从一个视图推送到另一个视图。同样,我们在故事板中从一个控制器导航到另一个控制器。

但是在SwiftUI中如何实现呢

有两种方法可以实现。

第一个是 "isActive" 绑定。

struct ViewA: View {

    @State private var isActive = false

    var body: some View {
        NavigationView {
            VStack {
                NavigationLink(destination: NextView(),
                               isActive: $isActive) {
                        Button(action: {
                            self.isActive = true
                        }) {
                            Text("Push Next View")
                        }
                }
            }
        }
    }

}

您将要推送的视图放在 NavigationLink 的目的地。 第二种方法也是使用 NavigationLink,但使用 "tag" 和 "selection"。 There the navigation is activated when the selection matches the tag.

可以使用导航解决Link

什么是导航Link?

导航Link:在每个单元格的右侧创建一个按钮并触发显示到详细视图

苹果Link: https://developer.apple.com/documentation/swiftui/navigationlink

示例项目

苹果 https://developer.apple.com/tutorials/swiftui/building-lists-and-navigation

Github https://github.com/appbrewery/H4X0R-News-iOS13-SwiftUI-Completed

如何实施:

import SwiftUI

struct LandmarkList: View {
    var body: some View {
        NavigationView {
            List(landmarkData) { landmark in
                NavigationLink(destination: LandmarkDetail(landmark: landmark)) {
                    LandmarkRow(landmark: landmark)
                }
            }
            .navigationBarTitle(Text("Landmarks"))
        }
    }
}

*注意:"LandmarkDetail" 是您的目标视图。

你也可以从apple(link上面提到的)下载sample project,看得清楚