我想通过单击按钮从SwiftUI的一个视图推到另一个视图。同样,我们在情节提要中从一个控制器导航到另一个控制器。
但是在SwiftUI中如何实现这一目标。
答案 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,但是使用“标签”和“选择”。选择与标签匹配时,将在此处激活导航。