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

时间:2019-11-21 05:45:03

标签: ios swiftui swift5

我想通过单击按钮从SwiftUI的一个视图推到另一个视图。同样,我们在情节提要中从一个控制器导航到另一个控制器。

但是在SwiftUI中如何实现这一目标。

2 个答案:

答案 0 :(得分:1)

您可以使用NavigationLink解决此问题

什么是NavigationLink?

NavigationLink:在每个单元格的右侧创建一个按钮,并触发向详细视图的显示

Apple 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下载示例项目(上述链接)以清楚地了解它

答案 1 :(得分:0)

有两种方法可以实现。

第一个带有“ 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,但是使用“标签”和“选择”。选择与标签匹配时,将在此处激活导航。