如何通过单击按钮在 Swift UI 中从一个视图导航到另一个视图
Posted
技术标签:
【中文标题】如何通过单击按钮在 Swift UI 中从一个视图导航到另一个视图【英文标题】:How to navigate from one view to another in Swift UI on a click of button 【发布时间】:2019-11-21 05:45:03 【问题描述】:我想通过单击按钮在 SwiftUI 中从一个视图推送到另一个视图。同样,我们在情节提要中从一个控制器导航到另一个控制器。
但在 SwiftUI 中如何实现这一点。
【问题讨论】:
【参考方案1】:您可以使用 NavigationLink 解决它
什么是 NavigationLink?
NavigationLink:在每个单元格的右侧创建一个按钮并触发显示到详细视图
苹果链接: 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”是您的目标视图。
您也可以从苹果下载示例项目(上面提到的链接)以清楚地理解它
【讨论】:
【参考方案2】:有两种方法可以实现。
第一个是“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,但使用“标签”和“选择”。选择匹配标记时,将激活导航。
【讨论】:
这是我的代码: Button(action: NavigationLink(destination: TableView()) Text("Show Detail View") .navigationBarTitle("Navigation") ) Text("Navigate ") .font(.title) .fontWeight(.medium) .foregroundColor(Color.green).background(Color.purple)以上是关于如何通过单击按钮在 Swift UI 中从一个视图导航到另一个视图的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift UI 中单击按钮时从 swift UI 导航到情节提要?
Swift:如何通过单击按钮 UITableVieCell 创建 UIActionSheet