SwiftUI - как создать анимацию перехода между представлениями, не влияя на дочернее представление?
В SwiftUI у меня есть такая общая настройка представления:
import SwiftUI
struct ContentView: View {
@State var index: Int = 0
var body: some View {
if self.index == 0{
FirstView(index: $index)
}
if self.index == 1 {
SecondView(index: $index)
.transition(.move(edge: .bottom))
.animation(.easeIn)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
```swift
where I have a butotn in FirstView that is equivalent of:
```swift
Button(action: {
self.index = 1
}){
Text("Change view")
}
Это работает нормально, и все в порядке, но я заметил, что с помощью этого метода любые представления, обусловленные оператором if / else в дочерних представлениях с анимацией перехода (то есть SecondView в этом случае), также имеют эти анимации .
Так, например, если SecondView был таким:
struct SecondView: View {
@Binding var index: Int
@State var boolean: Bool = false
var body: some View {
VStack{
if self.boolean == true {
Text("Hello!")
}
Button(action: {
self.boolean = true
}){
Text("change boolean")
}
}
}
}
текст ("Привет") также будет иметь
.transition(.move(edge: .bottom))
переход.
Есть ли способ предотвратить это / лучший способ создать анимацию перехода от одного представления к другому?