【发布时间】:2020-06-30 20:28:23
【问题描述】:
我在使用 NavigationLink 在 SwiftUI 中推送视图时遇到问题。
目前我已将其设置为绑定布尔值设置为“true”,具体取决于登录是否成功。但是,当我运行代码时,尽管布尔值已成功更改,但视图并未推送。
我正在使用 Swift 5 并在 WatchOS 6.2 上进行开发,它不需要将 NavigationLink 嵌套在 NavigationView 中,因为它不受支持。
import SwiftUI
struct Login: View {
@State var pushErrorView = false
@State var pushActivityView = false
var body: some View {
VStack{
Button(action:
{
self.login()
}) {
Text("Log In")
}
NavigationLink(destination: PopupMessage(message: "Login Error"), isActive: self.$pushErrorView) {
EmptyView()
}.hidden()
NavigationLink(destination: ActivityView(), isActive: self.$pushActivityView) {
EmptyView()
}.hidden()
}
}
private func login(){
if loginSuccess() {
self.pushActivityView = true
}
else {
self.pushErrorView = true
}
}
}
【问题讨论】:
-
您的 NavigationLinks 不需要
.hidden()。如果它们只有EmptyView()作为主体,它们将不可见。
标签: swift swiftui watchos watchos-6