top of page

アプリを手作りしています

ホーム: ようこそ!
ホーム: Blog2

[SwiftUI]What I wear counter/着た回数カウンタ - (4) Update CoreData

  • handmadeapp
  • 2020年2月3日
  • 読了時間: 2分

更新日:2020年2月18日

着た回数カウントアプリの続きです。


今日は、追加されたItemから「今日着たものを登録する」部分。

完成イメージは、こんな感じ。

①Edit時のView作成

②EditViewのチェックボックスアクション

③「Register」ボタンタップ時のCoreData更新

④「Register」ボタンタップ後のアラートメッセージ&画面遷移


に切り分けて順に作っていきます。


①Edit時のView作成

通常時は、リスト項目の選択→Detail Viewへの遷移になるので、

ItemRow自体を分けることに。

ItemRowとは別に、ItemRowEditを作成。


<ItemRow> 変更なし

※「③「Register」ボタンタップ時のCoreData更新」の準備として、

count_after_washなど回数を保持する変数の定義をStringからInt16に変更。

それに伴い、Textに設定する際、Stringへの変更だけ追記しています。


<ItemRowEdit> 新規作成

チェックボックスは、Buttonでタップ毎に「isChecked」変数をToggleし、

「isChecked」の内容に応じてLabelの表示アイコンを変更する形に。


<ContentView>

・NavigationBarにEditボタン追加(Edit中はTextの表示を「Cancel」に)

・Edit時は「Register what I wear today」ボタンを表示

・ItemRow、ItemRowEditの出し分け


②EditViewのチェックボックスアクション

チェックボックスで選択されたItem情報を保存しておき、

「Register」ボタンタップ時に参照、CoreDataに反映する必要がある。


「selections」というArrayを用意して、チェックボックスがタップされた時に、

・未選択→選択:Arrayに追加

・選択→未選択:Arrayから削除(名前の一致を検索して削除)

することに。

名前は必ずユニークである前提の仕様。。。

まぁ、使ってみて不便があったらItem追加時のチェックなどを入れて対応すれば良いかな。



③「Register」ボタンタップ時のCoreData更新

変更対象のItemの名前が登録された「selections」Arrayのそれぞれについて、

洗った回数を+1するFunctionを作成。

これを、「Register」ボタンから呼び出す。


④「Register」ボタンタップ後のアラートメッセージ&画面遷移

最後に、「Register」ボタンタップ後に

・Alert表示

・Alert確認(OKタップ)後、selectionsに設定されていた値をクリア ・Alert確認(OKタップ)後、EditView解除

するよう「Register」ボタンに機能追加。


以上、CoreDataの更新ができるようになりました。

Commentaires


©2020 by Handmade App. Proudly created with Wix.com

bottom of page