web-dev-qa-db-ja.com

Swiftui Conditional Viewはアニメ化/遷移しません

ビューに.transition()を使用して、ビューをアニメート/遷移させるようにしようとしています。私は ここでは から似たコードを使い、両方の条件ビューに.transition()を入れます。

_struct Base: View {
    @State private var isSignedIn = false

    var body: some View {
        Group {
            if(isSignedIn){
                Home().transition(.slide)
            }else{
                AuthSignin(isSignedIn: self.$isSignedIn).transition(.slide)
            }
        }
    }
}

struct AuthSignin: View {
    @Binding var isSignedIn: Bool

    var body: some View {
        VStack {
            Button(action: {
                self.isSignedIn = true
            }) {
                Text("Sign In")
                    .bold()
                    .frame(minWidth: CGFloat(0), maxWidth: .infinity)
                    .padding()
                    .background(Color.blue)
                    .foregroundColor(Color.white)
                    .cornerRadius(CGFloat(10))
            }.padding()
        }
    }
}
_

ただし、「サインイン」ボタン(.transition()の有無にかかわらずクリックすると、アプリは2秒間フリーズし、次にHome()ビューがアニメーションなしで突然表示されます。遷移。 withAnimationでは_self.isSignedIn = true_をラップしようとしましたが、まだ機能しません。どんなアイデアやこれを行うより良い方法はありますか?

11
leftysauce

Self.isgenedin = trueの前に保持されます

0
Chris