У меня есть представление по умолчанию, ContentView:
var body: some View {
return Group {
if observable.operationToSign.isEmpty {
Ring(fillPoint: fillPoint).stroke(colors[colorIndex], lineWidth: 10)
.frame(width: 100, height: 100)
.onAppear() {
withAnimation(self.animation) {
self.fillPoint = 1.0
_ = self.timer
}
self.booted = true
}
} else {
AuthorizationView(observable: observable)
}
}
}
При определенных условиях он загружает это другое представление, AuthorizationView:
var body: some View {
return Group {
if observable.operationToSign.isEmpty {
Text("Nothing to sign")
ContentView(observable: self.observable)
} else {
VStack {
Text("Sign payment")
HStack {
Button(
action: {
signPayment(observable: self.observable)
},
label: { Text("✅") }
)
Button(
action: {
// do something
print("not implemented")
},
label: { Text("?♂️") }
)
}
}
}
}
}
Как вы можете видеть, когда нет платежейчтобы подписать, он загружает первый вид, ContentView, обратно на место. Когда это происходит, анимация не запускается в ContentView, и вместо загрузочного счетчика отображается полный круг, тогда как при запуске приложения счетчик работает так, как задумано в ContentView.
Есть идеи, почему .onAppear не запускается при загрузке ContentView?