ios - 在 SwiftUI 中单击按钮时的 NavigationView 和 NavigationLink?
<p><p>我正在尝试从登录 View 推送到详细 View ,但无法成功。即使导航栏未显示在登录 View 中。如何在 SwiftUI 中按下按钮?如何在按钮点击时使用 NavigationLink?</p>
<pre><code>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"))
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>要解决您的问题,您需要使用 <code>NavigationLink</code> 绑定(bind)和管理标签,因此在您的 View 中创建一个状态如下,只需添加上面的正文。</p>
<pre><code>@State var selection: Int? = nil
</code></pre>
<p>然后更新您的按钮代码如下添加 <code>NavigationLink</code></p>
<pre><code>NavigationLink(destination: Text("Test"), tag: 1, selection: $selection) {
Button(action: {
print("login tapped")
self.selection = 1
}) {
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)
}
</code></pre>
<p>Meaning is, when selection and <code>NavigationLink</code> tag value will match then navigation will be occurs.</p>
<p>希望对你有帮助。</p></p>
<p style="font-size: 20px;">关于ios - 在 SwiftUI 中单击按钮时的 NavigationView 和 NavigationLink?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/57799548/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/57799548/
</a>
</p>
页:
[1]