単純にTextField()で入力した文字列をnames配列に追加し、遷移先のTestViewで表示させたいです。
ただ、以下のようなエラーが出てしまいます。
Editor placeholder in source file
理由としては、name: の右の部分が正しく入力されていないからだと思うのですが、何をここに入力すれば良いのかわかりません。
これまではContentView()のように引数は入れていなかったのですが、何故今回は引数を入れなければならないのでしょうか?
ContentView.swift
Swift
1import SwiftUI 2 3struct ContentView: View { 4 @State var names : [String] = [] 5 @State var name: String 6 var body: some View { 7 NavigationView{ 8 TextField("Name", text: $name) 9 Button(action: { 10 names.append(name) 11 self.name = "" 12 }) { 13 Text("追加") 14 } 15 NavigationLink(destination: TestView(elements: $names)) { 16 Text("次へ").font(.title) 17 } 18 } 19 } 20} 21 22struct ContentView_Previews: PreviewProvider { 23 static var previews: some View { 24 Group { 25 ContentView( name: <#String#>) 26 } 27 } 28} 29
###TestView.swift
Swift
1import SwiftUI 2 3struct TestView: View { 4 @Binding var elements: [String] 5 var body: some View { 6 VStack { 7 ForEach(elements, id: .self){ i in 8 Text(i) 9 } 10 } 11 } 12}
色々と調べてはいるのですが、全く解決の糸口が見つからないため、
こちらで質問させて頂きました。
どなたかアドバイスを宜しくお願いいたします。
文字列です。""とか"GGG"とか。
コメントありがとうございます。
>TextField()で入力した文字列をnames配列に追加し、遷移先のTestViewで表示させたい
この場合は何の文字列を入れればよいでしょうか?
最初のものを参考に自分でまず考えてみてください。
丸一日考えてもわからなかったので、最後の手段としてこちらで質問させて頂きました。
これ以上は考えても答えは見えてこないと思います。
アドバイスを頂けないでしょうか?
自分はSwiftUIではコードを書かないのですが、以下のような感じでやってみたらどうでしょうか?
ContentView(names: [""])
無事に期待通りの結果を得られました。
ありがとうございます。
あなたの回答
tips
プレビュー