swiftui - 如何将我的登录屏幕链接到我的主屏幕 SwiftUI
问题描述
我坚持将我的登录屏幕链接到我的主屏幕。两者都是单独创建的,我已经使用 Button 功能创建了登录按钮,它会使用我登录的电子邮件进入另一个屏幕,但这不是我想要的,因为我希望我的主屏幕打开。
Button(action: model.login) {
Text("LOGIN")
.fontWeight(.bold)
.foregroundColor(Color("Color1"))
.padding(.vertical)
.frame(width: UIScreen.main.bounds.width - 30)
.background(Color.white)
.clipShape(Capsule())
}
.padding(.top, 22)
我的 MainView 代码开始
struct MainView: View {
@State private var isShowing = false
var body: some View {
NavigationView {
ZStack {
解决方案
在您的App
结构中添加一个State
varisLoggedin
将其传递给 theloginView
并从那里切换它。
这就是我实施的方式。
struct TestApp: App {
@State var isLoggedin: Bool = false
var body: some Scene {
WindowGroup {
if isLoggedin {
ContentView()
} else {
LoginView(isLoggedin: $isLoggedin)
}
}
}
}
struct LoginView: View {
@Binding var isLoggedin: Bool
var body: some View {
Button(action: {
isLoggedin = true
}, label: {
Text("Login")
})
}
}
这样您就可以选择要显示的视图。ContentView
到LoginView
.
推荐阅读
- google-app-engine - 如何使用 logback 从谷歌应用引擎将 jsonPayload 作为 jsonPayload 记录到堆栈驱动程序?
- arrays - PostgreSQL JSON 构建一个没有空值的数组
- javascript - 使用递归分解一个数字
- node.js - 如何将来自 Firestore 查询的数据保存在变量中?
- javascript - 从ajax存储变量
- javascript - 如何过滤字符串数组以检测有效 URL?
- python - 返回 Python 中的封闭范围变量
- amazon-web-services - 触发退回事件时,Amazon SNS 不发送通知
- java - 在Java中转换数组过程?(协方差和 [LObject)
- python - 为 python 目录中的每个模块调用特定函数