我正在尝试创建逻辑,一旦用户输入了凭据,该逻辑就会将用户发送到正确的视图。在登录页面中,当用户登录时,他们会获得可用于调用API的令牌。我将该令牌存储在KeychainSwift中。然后,我可以检查存储的字段是否具有不为null且不为空的条目,以将用户路由到主页。我使用this和this之类的逻辑将我路由到正确的视图。
我的内容查看代码如下:
struct ContentView: View {
@ObservedObject var userAuth = UserAuth()
var body: some View {
if(self.userAuth.isLoggedIn){
return AnyView(MainPageView())
}else{
return AnyView(AccountPageView())
}
}
}
UserAuth如下:
import Combine
class UserAuth: ObservableObject {
// let objectWillChange = ObservableObjectPublisher()
@Published var isLoggedIn: Bool = false;
init() {
let keychain = KeychainSwift()
let userToken = keychain.get("userToken") ?? ""
if(!userToken.isEmpty || userToken != "" ){
self.isLoggedIn = true
}else{
self.isLoggedIn = false
}
}
}
问题在于,没有从视图直接路由到另一个视图的直接方法,因此为什么我诉诸于使用ContentView中显示的逻辑。我有类似的登录逻辑。我有一个视图(loginformview),可以将您路由到登录表单视图或主页视图。但是,一旦您登录了登录表单,我将需要返回到存在检查的上一个视图(loginformview),以查看是否应该返回登录页面或转到主页(这次将您发送至主页) 。似乎非常周期性,有人有任何想法来适当应对这种逻辑吗?