secretused / MentaSecondTestApp

0 stars 1 forks source link

ListViewController の DataSource 切り替えについて #7

Closed hayabusabusa closed 4 years ago

hayabusabusa commented 4 years ago

📝 詳細

質問させていただきたいのですが、 allListselectedList にはどのような違いがあるのでしょうか? selectedList は TODO で言うすでに実行済みのタスクのようなものなのでしょうか?

あと メソッドsegmentSelcted同等の処理なら不要 というコメントで viewWillAppear() がコメントアウトされていますが、 現状のままだと以下の操作を行った場合リストが更新されません。

なので、viewWillAppear() はコメントアウトせずに、 Realm のデータを読み込む処理を viewWillAppear() で行う必要があります。

secretused commented 4 years ago

selectedList は TODO で言うすでに実行済みのタスクのようなものなのでしょうか?

はい、そうなります。allListのSwipeActionsConfigurationForRowAt移動させる形となります。

コメントアウトの件はUISegmentedControlでもreloadData()しているのでSegmentedControllを切り替えるたびに reloadData()しているののならば、viewWillAppear()と同等かな?と思ったのですが SegmentedControllのreloadData()も教えてもらったやり方なので何をしているのかあまり理解できていません。 なのでコメントで一応書いておきました。

viewWillAppear() はコメントアウトせずに、 Realm のデータを読み込む処理を viewWillAppear() で行う必要があります。

今ViewDidLoadで行っている let realm = try! Realm() movieItems = realm.objects(RegisteredMovie.self) をviewWillAppearで行った方が良いということですか?

hayabusabusa commented 4 years ago

@secretused

今ViewDidLoadで行っている let realm = try! Realm() movieItems = realm.objects(RegisteredMovie.self) をviewWillAppearで行った方が良いということですか?

はい。まさしくその通りです!

UISegmentedControlでもreloadData()しているのでSegmentedControllを切り替えるたびに reloadData()しているののならば、viewWillAppear()と同等かな?と思ったのですが

いえ少し動作が違います。というかそもそも両者とも目的が違いますね。 UISegmentedControl の方はデータの切り替えを行うために使用されていて、 viewWillAppear() はデータを更新するために使用されているイメージになると思います。

secretused commented 4 years ago

データの切り替えとはどういうことですか?

hayabusabusa commented 4 years ago

@secretused selectedList は TODO で言うすでに実行済みのタスクのようなものだということなので、 選択した全てのデータ allList とすでに試聴済み(?)のデータ selectedListtableView.reloadData() で切り替えるという意味です。 動作としてはあっていると思いますが、間違っていますか?

secretused commented 4 years ago

そういう事ですか、分かりました! 理解が乏しくてすみません。

hayabusabusa commented 4 years ago

@secretused こちらこそ紛らわしい説明になって申し訳ありませんでした🙇‍♂️ 私から質問させていただきたいことは以上になるので、他に質問事項等なければクローズしてしまいますね。

secretused commented 4 years ago

クローズでお願いします。