SwiftUI点击"注销"时,将App重置为登录界面



我正在构建一个使用SwiftUI的应用程序,并具有使用Django Rest进行身份验证的登录功能。当用户成功登录时,他们将被带到使用选项卡视图的主屏幕。其中一个选项卡视图是一个帐户页面(导航视图),用户可以通过点击按钮退出。

当他们注销时,我希望它将他们带回到登录屏幕,目前这是使用if语句和@State变量来捕获注销按钮按下时完成的:

@State var logout = false
var body: some View {
if (logout) {
Test()
} else {
VStack{

Text("Account View")
Spacer()
Spacer()
Button(action: {
self.logout = true
}, label: {Text("Logout")})

}
}
}
}

在本例中,Test()是登录屏幕,但是当用户被带回到这个屏幕时,底部的选项卡栏仍然显示。

我如何重置应用程序,使标签栏不显示?

存储一个变量来检查用户是否按下了登出可能不是最好的解决方案。如果你想登录和注销工作,您应该将视图放入NavigationController.

通过实现NavigationController,您可以重置为/调用默认登录屏幕,该屏幕不会显示任何其他内容,如TabView

最新更新