前提・実現したいこと
ここに質問の内容を詳しく書いてください。
オンラインゲームのメンバー募集アプリを制作しています。
NewTweetViewでPickerBoot用い、Pickerで得られた結果をUsercellの超上級者のところに入れたいのですが、結果がViewを越えて得る方法がわかりません。
これが初めて作るアプリで、コードもめちゃくちゃなところが多いと思いますがよろしくお願いします。
該当のソースコード
swiftUI
1import SwiftUI 2 3enum Level: String, CaseIterable { 4 case 超上級者 5 case 上級者 6 case 中級者 7 case 初心者 8 case レベル関係なし 9 case エンジョイ 10} 11 12struct PickerBoot: View { 13 @State private var selectionValue = Level.超上級者 14 15 var body: some View { 16 VStack { 17 Picker("Level", selection: $selectionValue){ 18 ForEach(Level.allCases, id: .self) {(level) in 19 Text(level.rawValue) 20 } 21 }.padding() 22 } 23 } 24} 25 26import SwiftUI 27 28struct NewTweetView: View { 29 @Binding var isPresented: Bool 30 @State var captionText: String = "" 31 @ObservedObject var viewModel = UploadTweetViewModel() 32 33 var body: some View { 34 NavigationView { 35 VStack { 36 HStack { 37 PickerView() 38 39 40 PickerBoot() 41 42 43 44 } 45 TextArea("ランクや募集文をお書きください", text: $captionText) 46 Spacer() 47 48 49 .padding() 50 .navigationBarItems(leading: Button(action: { 51 isPresented.toggle() }, label: { 52 Text("Cancel") 53 .foregroundColor(.blue) 54 }), 55 56 trailing: Button(action: { 57 viewModel.uploadTweet() 58 }, label: { 59 Text("Tweet") 60 .padding(.horizontal) 61 .padding(.vertical, 8) 62 .background(Color.blue) 63 .foregroundColor(.white) 64 .clipShape(Capsule()) 65 66 })) 67 Spacer() 68 } 69 } 70 } 71} 72 73import SwiftUI 74 75struct Usercell: View { 76 let user: User 77 @State private var selectionValue: String 78 var body: some View { 79 HStack { 80 Text(user.username) 81 .font(.system(size: 14, weight: .semibold)) 82 83 Text("超上級者") 84 .font(.system(size: 14, weight: .semibold)) 85 } 86 .foregroundColor(.black) 87 } 88} 89
試したこと
PickerBoot()の()に何かを入れたりすると思い、調べました。
色々調べたが、参考になる記事が見つかりませんでした。
補足情報(FW/ツールのバージョンなど)
SwiftUIで作っています。