まだどこにもないアプリを作る

アプリ開発でつまづいたところなどを中心に記事にして行きます。

SwiftUI TextField 値受け渡した時のTextFieldの初期値

第一の画面があって

第二の画面があります。

 

第一の画面で作ったString変数を

第二の画面に受け渡して

 

そのString変数を第二の画面のTextFieldに表示させたい。

 

onAppearでStateのプロパティに代入してもTextFieldには反映されません。しかし

 

以下のように遅延処理をすることで可能になります。

@State var textFieldText = ""

 

TextField("テキストを入力", text:$textFieldText).onAppear {

            DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {

                textFieldText = receivedText//第一の画面から受け取った変数(receivedText)

            }