teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コメントで指摘を受け、回答を追記

2020/10/08 15:24

投稿

TakeOne
TakeOne

スコア6299

answer CHANGED
@@ -22,4 +22,13 @@
22
22
 
23
23
  Qiitaの記事は、大変有用なものもありますが、一方で誰でも記事を書いて公開できるので、あまり理解していない人が初心者向けに丁寧な記事を書いて、おかしなやり方を広めてしまっていることもあります。今回参照されている記事は、画面遷移のことをあまり理解していない人が安易に書かれているように思います。画面遷移のことをちゃんと理解している人なら、メイン画面に逆方向のsegueを接続するようなやり方は絶対にしません。また、UINavigationContollerを使わずにUINavigationBarを直接貼り付けているのも気になります。これだと、後でiPhoneX系の画面にUINavigationBarをうまくレイアウトさせるのに苦労するだろうなと思います。
24
24
 
25
- 市販の入門書籍を購入する等、できるだけ信頼できる情報を使って勉強することをお勧めします。
25
+ 市販の入門書籍を購入する等、できるだけ信頼できる情報を使って勉強することをお勧めします。
26
+
27
+ ---
28
+ (2020/10/9追記)
29
+
30
+ TsukubaDepotさんからコメント欄でご指摘を頂いた通りですが、iOS13以降のモーダル画面遷移は遷移元画面の上端が見えた状態で遷移するので、画面を戻った時にviewWillAppearが呼ばれません。画面遷移先のViewControllerのPresentationをFull Screenと設定すれば遷移元画面が見えない状態で画面遷移するので画面を戻った時にviewWillAppearが呼ばれるようになります。
31
+
32
+ 画面遷移時に遷移元画面の上端が見えた状態で遷移させたい場合は、unwindSegue(exitにsegueを接続する方法)で画面を戻った時に呼ばれるメソッドでUserDefaults読み込み処理を行う(TsukubaDepotさんのリンク参照)か、あるいは
33
+ [https://qiita.com/ichikawa7ss/items/df8cd87e66ada42cb560](https://qiita.com/ichikawa7ss/items/df8cd87e66ada42cb560)
34
+ で説明されているように、画面遷移時にUserDefaults読み込み処理が記述されたクロージャを渡し、画面を戻る時にそのクロージャを呼び出す方法があります。