【发布时间】:2020-08-24 16:28:38
【问题描述】:
我的问题是 TabView 没有更新。
我想登录,然后在同一 TabItem 中重新渲染另一个视图(配置文件屏幕)而不是(登录屏幕)。
TabView 只有在我终止应用并重新打开后才会转到 ProfileScreen。
这是TabView 代码:
import SwiftUI
struct ContentView: View {
@State var userToken: String = UserDefaults.standard.string(forKey: "UserToken") ?? ""
var body: some View {
TabView{
HomeScreen(text: .constant("")).tabItem({ Image(systemName: "house") }).tag(0)
Text("Cart").tabItem({ Image(systemName: "cart") }).tag(1)
if userToken.isEmpty {
LoginScreen().tabItem({ Image(systemName: "person") }).tag(2)
}
else {
ProfileScreen().tabItem({ Image(systemName: "person") }).tag(2)
}
}
}
}
我尝试过的事情:
- 向两个屏幕传递不同的@State 值
- 在 LoginScreen 中呈现配置文件屏幕,但它呈现在 TabView 的顶部
【问题讨论】:
-
你在哪里修改“用户令牌”属性?
标签: ios swift swiftui userdefaults swiftui-tabview