![](/img/trans.png)
[英]SWIFTUI hide navigationBarBackButton for current view in TabView
[英]SwiftUI TabView not updating View
我的問題是 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)
}
}
}
}
我嘗試過的事情:
如果您使用的是最新的 SwiftUI,請考慮使用 @AppStorage 而不是 @State:
@AppStorage("UserToken") var userToken: String = ""
如果您正在任何其他視圖中修改 userToken 的值,例如可能是 LoginView,您需要一種機制來通知內容視圖有關該更新的信息。
您可以考慮在此處使用 LocalNotifications 將更新發送到 ContentView,以便視圖在狀態更新時重新加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.