回答編集履歴
2
追記1
answer
CHANGED
@@ -11,4 +11,15 @@
|
|
11
11
|
- A -> B と遷移
|
12
12
|
- Bでユーザーが操作を完了
|
13
13
|
- B -> A と戻る
|
14
|
-
- AはA -> Cと遷移させる
|
14
|
+
- AはA -> Cと遷移させる
|
15
|
+
|
16
|
+
**追記1**
|
17
|
+
メニューならば、Aの画面の一部と考えて、
|
18
|
+
- A -> B
|
19
|
+
- B -> A
|
20
|
+
- A -> C
|
21
|
+
という遷移がよさそうですね。
|
22
|
+
|
23
|
+
恥ずかしながら私も詳しくないのですが、iOSにはmodal遷移(modallyな遷移)とそうでない遷移(push等)があるようで、どちらの遷移かによって振る舞いが変わるようです。
|
24
|
+
遷移の種類は、Storyboardならばセグエのプロパティで設定できます。
|
25
|
+
アプリによって適切な遷移が変わってくるとおもうので、いろいろ試してみてくださいね。
|
1
表記ミスを修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
[こちらの公式ドキュメント](https://developer.apple.com/reference/uikit/uiviewcontroller/1621505-dismiss)によると、`self.dismiss`は`UIViewController`によってmodallyに表示された`UIViewController`を閉じるとあります。
|
2
2
|
つまり、`self`に対して`dismiss`を呼べば、`self`がmodallyに表示した遷移先が閉じるのは当たり前なのではないでしょうか。
|
3
3
|
|
4
|
-
対策としては、遷移元(Bとする)の遷移元(Aとする)
|
4
|
+
対策としては、遷移元(Bとする)の遷移元(Aとする)に対して`dismiss`を呼び、遷移元Bを閉じてもらうという方法があると思いますが、それではBから遷移先Cにmodallyに遷移していた場合、Bを閉じるとCも閉じてしまうと思います。
|
5
5
|
|
6
6
|
そもそも`UIViewController`はその子の`UIViewController`を閉じることに責任があるとありますから、子が親を閉じるが、子は閉じられたくない、という設計に問題があるのではないでしょうか。(それでは親が責任を果たさず閉じることになる)
|
7
7
|
それよりも、その設計を見直すのはどうでしょう。
|