我试图从登录视图推到详细视图,但无法实现。甚至导航栏也没有显示在登录视图中。如何在SwiftUI中推动按钮点击?如何在按钮点击时使用NavigationLink?
var body: some View {
NavigationView {
VStack(alignment: .leading) {
Text("Let's get you signed in.")
.bold()
.font(.system(size: 40))
.multilineTextAlignment(.leading)
.frame(width: 300, height: 100, alignment: .topLeading)
.padding(Edge.Set.bottom, 50)
Text("Email address:")
.font(.headline)
TextField("Email", text: $email)
.frame(height:44)
.accentColor(Color.white)
.background(Color(UIColor.darkGray))
.cornerRadius(4.0)
Text("Password:")
.font(.headline)
SecureField("Password", text: $password)
.frame(height:44)
.accentColor(Color.white)
.background(Color(UIColor.darkGray))
.cornerRadius(4.0)
Button(action: {
print("login tapped")
}) {
HStack {
Spacer()
Text("Login").foregroundColor(Color.white).bold()
Spacer()
}
}
.accentColor(Color.black)
.padding()
.background(Color(UIColor.darkGray))
.cornerRadius(4.0)
.padding(Edge.Set.vertical, 20)
}
.padding(.horizontal,30)
}
.navigationBarTitle(Text("Login"))
}
6条答案
按热度按时间bf1o4zei1#
要解决您的问题,您需要绑定和管理标签与
NavigationLink
,所以创建一个状态内您的看法如下,只需添加上述机构。然后按如下所示更新按钮代码以添加
NavigationLink
意思是,当选择和
NavigationLink
标签值匹配时,将发生导航。希望这对你有帮助。
w8rqjzmb2#
iOS 16及以上版本
在iOS 16中,我们可以访问NavigationStack和NavigationPath。
一个简单的
NavigationLink
命令激活一个新视图:新视图由标准
Button
激活:新视图以编程方式激活:
iOS 13及以上版本
接受的答案使用
NavigationLink(destination:tag:selection:)
,这是正确的。但是,对于只有一个
NavigationLink
的简单视图,可以使用simpler变体:NavigationLink(destination:isActive:)
NavigationLink
由标准Button
激活:NavigationLink
被标准Button
* 隐藏 * 并激活:NavigationLink
是 * 隐藏的 *,并通过编程方式激活:下面是一个GitHub存储库,它具有不同的SwiftUI扩展,使导航更容易。
sg3maiej3#
另一种方法:
希望这有帮助!
oknrviil4#
最简单有效的解决方案是:
ScoresTableView是目标视图。
pvcm50d15#
在我看来,**iOS16 +**的一种更干净的方式是使用状态布尔值来表示视图。
l2osamch6#
我认为以上答案很好,但更简单的方法应该是: