前提・実現したいこと
contentViewから新規追加ボタンを押し、現れたシートのTestFiledに文字を入力。その後シートの上部にある閉じるボタンを押すと、入力された文字列がContentviewのTextに反映される。
発生している問題・エラーメッセージ
「新規追加」ボタンを押し、新しいシートがでてきますが、textfiledを入力すると「閉じる」ボタンが機能しなくなります。
「新規追加」ボタンを押したあと、textfiledに何も入力しない場合は「閉じる」ボタンが機能します。
textfiledに文字を入力しても「閉じる」ボタンが機能するようにするには、どこが間違っているのかご教示いただけますと幸いでございます。
該当のソースコード
swiftUI
1ソースコード
//ContentViewのコード
import SwiftUI
struct ContentView: View {
@EnvironmentObject var user : User @State var isshow = false var body: some View { NavigationView { Text("名前: (user.name)") .toolbar { ToolbarItem(placement: .navigationBarTrailing){ Button(action: {isshow = true}, label: { Text("新規追加") }) .fullScreenCover(isPresented: $isshow){ NewMeibo(isPresented: $isshow) } } }.navigationBarTitle(Text("名簿リスト")) } }
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.environmentObject(User())
}
}
//ContentViewの新規追加ボタンを押したあとに現れるview
import SwiftUI
struct NewMeibo: View {
@Binding var isPresented: Bool @EnvironmentObject var user : User var body: some View { NavigationView{ TextField("氏名入力", text: $user.name) .padding() .toolbar { ToolbarItem(placement: .navigationBarTrailing) { Button(action: {isPresented = false}, label: { Text("閉じる") }) } } } }
}
struct NewMeibo_Previews: PreviewProvider {
static var previews: some View {
NewMeibo(isPresented: Binding.constant(false))
.environmentObject(User())
}
}
//共有オブジェクト
import Foundation
class User: ObservableObject{
@Published var name: String = ""
}
試したこと
補足情報(FW/ツールのバージョンなど)
Xcode バージョン12.3
swift5
macOS Catalinaバージョン10.15.7
あなたの回答
tips
プレビュー