如何在fragment中点击按钮切换到另一个fragment中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在fragment中点击按钮切换到另一个fragment中相关的知识,希望对你有一定的参考价值。
在一个fragment中 切换到另外一个fragment 如果是同一个Activity中, 那么直接在Activity中写个切换的方法, 然后在Fragment调用 getActivity() 来得到这个Activity再调用它的切换方法即可 参考技术A ? 名家点评? 国际评价如何在 SwiftUI 中以编程方式切换到另一个视图(无需按下按钮)
【中文标题】如何在 SwiftUI 中以编程方式切换到另一个视图(无需按下按钮)【英文标题】:How to switch to another view programmatically in SwiftUI (without a button press) 【发布时间】:2020-06-12 16:35:56 【问题描述】:我在不按 SwiftUI 应用程序中的按钮的情况下切换到另一个视图时遇到问题。 我可以举很多例子来说明我想做的事情: 1-想象一个登录表单,我们需要填写 2 个文本字段:用户名和密码。当完美匹配时,我们会自动进行身份验证。 2-现在以我为例。我有这样的看法:
我想要做什么:当我在列表中选择一行时(例如 Lyon-Perrache TGV)并且如果两个文本字段不为空 => 我被重定向到另一个视图。
有很多例子可以知道如何从另一个视图移动到一个视图,但总是通过一个按钮单击..(使用 NavigationLink) 当我从列表中选择目标文本字段时,我需要准确地以编程方式完成这两个文本字段。
这是我的代码的一部分:
import SwiftUI
struct Search: View
@ObservedObject var webservice = Webservice()
@State var Depart: String = ""
@State var Destination: String = ""
@State var listStation = [Station]()
@State var predictedValues: Array<String> = []
@State var isBeingEditedDeparture: Bool = false
@State var isBeingEditedDestination: Bool = false
@State var hey: Bool = false
@State var activate: Bool = false
init()
UITableView.appearance().showsVerticalScrollIndicator = false
UITableView.appearance().backgroundColor = .clear
UITableViewCell.appearance().backgroundColor = .clear
//UITableView.appearance().separatorColor = .clear
var body: some View
VStack(alignment: .leading)
PredictingTextField(listStation: self.$listStation , predictedValues: self.$predictedValues,
Depart: self.$Depart, Destination: self.$Destination, isBeingEditedDeparture:
self.$isBeingEditedDeparture, isBeingEditedDestination: self.$isBeingEditedDestination )
.textFieldStyle(RoundedBorderTextFieldStyle())
List()
ForEach(self.predictedValues, id: \.self) value in
Text(value)
.onTapGesture
if(self.isBeingEditedDeparture == true)
self.Depart = value
else
self.Destination = value
self.activate = true
.padding(.top, 10)
我已经声明了一个名为“activate”的变量作为移动到新视图的触发点。 当我们在列表中为“destination”文本字段选择一行时,它等于 true。
我该怎么做才能走得更远?
提前谢谢你!
【问题讨论】:
【参考方案1】:您可以将NavigationLink
与isActive
参数一起使用。当您将此参数设置为true
时,它将显示NewView
:
@State var activated: Bool = false
NavigationLink(destination: NewView(), isActive: $activated)
EmptyView()
然后您需要将您的NavigationLink
放入NavigationView
以使其工作。
【讨论】:
你能告诉我在上面的代码中把 NavigationLink 放在哪里吗? ty 几乎在正文中允许查看的任何地方(例如,在VStack
中)。 NavigationLink
将是不可见的(因为它的主体是 EmptyView
)并且不会影响您的其他视图。
哦,对不起,我忘了。它必须在NavigationView
。以上是关于如何在fragment中点击按钮切换到另一个fragment中的主要内容,如果未能解决你的问题,请参考以下文章