我在调试器中不断收到错误消息:
2020-07-18 15:59:07.256759-0400 ThePillowApp [22009:7205609]警告:尝试在<< em> TtGC7SwiftUI19UIHostingControllerVVS_22_VariadicView_Children7Element 上显示
我的代码的快照:
##First View
class User: ObservableObject {
@Published var test = false
}
struct RegisterView: View {
@EnvironmentObject var user: User
var body: some View {
NavigationView{
...
HStack{
NavigationLink(destination: AccountView().navigationBarTitle("")
.navigationBarHidden(true), isActive: self.$user.test) {
Text("").foregroundColor(.black).font(Font.custom("DiariaPro-Light", size: 12))}
Button(action: {self.user.test=true}) {
Text("Don't have an account?")
.font(Font.custom("DiariaPro-Light", size: 12))
.foregroundColor(.black)
}}}
##Second View
struct AccountView: View {
@EnvironmentObject var user: User
@State private var alertMessage = "Error message"
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var body: some View {
NavigationView{
...
HStack{
Button(action: {
DispatchQueue.main.async {
self.user.test=false
self.presentationMode.wrappedValue.dismiss()
}
}) {
Text("Already have an account?")
.font(Font.custom("DiariaPro-Light", size: 12))
.foregroundColor(.black)
}}
基本上,我想做的是在第一个视图上,如果您没有帐户,则单击按钮,该按钮会将您带到注册页面。在注册页面(#second视图)上,您可以创建一个帐户。我遇到的问题是,在我关闭第二个视图(通过self.user.test = false或self.presentationMode.wrappedValue.dismiss())并返回到第一个视图之后,第二个视图仍在显示本身。
我知道这是因为我在两个视图上都安装了警报,并且当我在第一个视图上触发警报时,关于“平台警报控制器”试图显示在主机控制器上的操作没有错误。在第二个视图上,存在该错误(我想是因为我从第一个视图导航到了第二个视图)。但是,当我从第一个转到第二个然后再回到第一个时,该警告仍然存在,这是关于提示的警告(即使我解雇后也是如此)。