前提・実現したいこと
swiftを学び始めて間も無いものです
swiftでCheckBoxの隣に外部から操作できるテキストを表示するviewを作り、ContentViewに配置したところ以下のエラーメッセージが発生しました。
CheckBoxView(dataManager.textCheck: "ur") というところがおかしいのだと思いますが、どう直すのかわかりません
"ur"をcheckboxの隣に表示したいです
エラーに関しては、特に「Cannot convert value of type 'String' to expected argument type 'EnvironmentObject<DataManager>'」の部分についてはさっぱりわからないので教えて頂けると嬉しいです
よろしくお願いします
発生している問題・エラーメッセージ
Cannot convert value of type 'String' to expected argument type 'EnvironmentObject<DataManager>'
Expected ',' separator
Expected expression in list of expressions
Missing argument label 'dataManager:' in call
該当のソースコード
量も多いので該当する部分を載せます
swift
1 2import SwiftUI 3 4struct ContentView: View { 5 6 @EnvironmentObject var dataManager : DataManager 7 8 9 var body: some View { 10 CheckBoxView(dataManager.textCheck: "ur") 11 } 12} 13 14 struct ContentView_Previews: PreviewProvider { 15 static var previews: some View { 16 ContentView() 17 .environmentObject(DataManager()) 18 } 19 } 20
swift
1import SwiftUI 2 3class DataManager: ObservableObject { 4 5 @Published var isChecked = false 6 7 @Published var textCheck = "" 8 9 10 func tap(){ 11 if isChecked == false{ 12 isChecked = true 13 }else { 14 isChecked = false 15 } 16 } 17 18} 19 20
swift
1 2import SwiftUI 3 4struct CheckBoxView: View { 5 @EnvironmentObject var dataManager: DataManager 6 7 8 var body: some View { 9 10 HStack{ 11 Button(action: dataManager.tap 12 ){if dataManager.isChecked == true{ 13 Image(systemName: "checkmark.square.fill") 14 .foregroundColor(.green) 15 } else { 16 Image(systemName: "square") 17 } 18 } 19 20 Text(dataManager.textCheck) 21 } 22 23 } 24} 25 26struct CheckBoxView_Previews: PreviewProvider { 27 static var previews: some View { 28 CheckBoxView() 29 .environmentObject(DataManager()) 30 } 31} 32
試したこと
CheckBoxViewに var text = "" を追加して
Text(dataManager.textCheck) から Text(text) に、
CheckBoxView(dataManager.textCheck) から CheckBoxView(text) に変更することでCheckBoxの隣にテキストをつけることはできました
なので 「text」が「dataManager.textCheck」 に 変えただけなので問題ないと思っていましたがエラーになってしまいました
textCheckの変数は今後様々なviewで使いたいのでtextCheckに代入できるようにしたいです
###利用環境
xcode Version 12.5.1
mac book air 2013
あなたの回答
tips
プレビュー