[SwiftUI]Baker's % Calculator /ベイカーズ%計算 - (3) List Update
- handmadeapp
- 2020年1月13日
- 読了時間: 1分
更新日:2020年2月18日
パンのレシピの各分量からBaker's %を算出するアプリの続きです。
今日は、入力画面で入力した内容をリストに反映する部分に挑戦。

似たようなことを実現している、こちらの動画を参考に、
List View側で「@State」で宣言して、確認用にNavigationBarTitleに表示されるよう設定。
入力画面を開くボタンのアクションに「 self.inputValue = ""」と入れておくことで、
前回の入力内容をクリアし、新しく入力できるようにする。

Edit View側では、「@Binding」でTextFieldの入力内容をその変数で受け取ればOK。

Preview部分の書き方で悩ましい部分があったものの、
シミュレータでList View側の変数にも入力内容が反映されていることを確認。

SwiftUI Tutorialにある、対象のLandmarkをFavoriteに追加する、という部分を参考に、
Listの選択された項目の属性を変更する仕様を実装していきたいと思います。
Environment Objectに関しては、こちらの動画で書き方の詳細を勉強。
List View。

Edit View(入力画面)。

TextFieldの受け取りを直接「 self.env.ingredients[self.ingIndex].gram」にできるかと思ったものの、上手くできず・・
TextField変更時の「On Change」アクションが「onEditingChanged」でできる、
という情報になかなか辿り着けず苦労しましたが、なんとか動くように。
また、動画でも解説されている通り、SceneDelegateの更新も必要。

ここまでで、入力画面で入力された内容でリストが更新されるようにできました。

次は、やっとBaker's %の計算部分に着手できるかな。

![[SwiftUI]Baker's % Calculator /ベイカーズ%計算 - (6) Append new item](https://static.wixstatic.com/media/0805bc_3d24d4d5cb814b53895c46a2b343ddab~mv2.png/v1/fill/w_980,h_739,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/0805bc_3d24d4d5cb814b53895c46a2b343ddab~mv2.png)
![[SwiftUI]Baker's % Calculator /ベイカーズ%計算 - (5) Delete from List](https://static.wixstatic.com/media/a27d24_010642e0d5cb477b91aa47c4dd653fbe~mv2.png/v1/fill/w_792,h_1392,al_c,q_90,enc_avif,quality_auto/a27d24_010642e0d5cb477b91aa47c4dd653fbe~mv2.png)
![[SwiftUI]Baker's % Calculator /ベイカーズ%計算 - (4) Functions](https://static.wixstatic.com/media/a27d24_b168acb9b75d4d8b8c78c2fab806d5f4~mv2.png/v1/fill/w_734,h_1234,al_c,q_90,enc_avif,quality_auto/a27d24_b168acb9b75d4d8b8c78c2fab806d5f4~mv2.png)
コメント