質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1847閲覧

画面遷移時に元のViewControllerを閉じてから次のViewControllerを開きたい

sena14

総合スコア109

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/11/30 13:33

編集2018/12/01 14:19

A,B,Cという画面があり
A→B(スタート)B→C(結果へ)C→A(タイトルへ)C→B(リトライ)の様な感じで画面遷移したいです。

結果への際にBを閉じつつCに遷移。タイトルへの際はCを閉じつつAに遷移。リトライの際はCを閉じつつBに遷移といった感じでの実装を考えています。

Bの画面に下記の様なコードを書いてみたのですが希望とは違い遷移先の画面が閉じてしまいます。
dismissをperformSegueより先に呼ぶと画面が閉じるだけで遷移しなくなってしまいます。

どうすれば画面遷移時に元のViewControllerを閉じてから次のViewControllerを開けるのでしょうか?
よろしくお願いします。

func gameOver(){ self.performSegue(withIdentifier: "toResult", sender: nil) self.dismiss(animated: true) }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/12/05 02:42

「○を閉じつつ△に遷移」というのは「○から△に遷移」とは違う意味で使ってますか?
sena14

2018/12/06 08:12

戻れない様にしたいという意味で使っています。
fuzzball

2018/12/06 08:17

わざわざ閉じなくても戻れないのでは?
sena14

2018/12/06 08:29

何かしらで開かれることを避けたいため安全策として閉じておいてしまいたいです。またそうすることでC→Aの画面遷移なども簡易化できると考えていますが必要のない処理でしょうか?
fuzzball

2018/12/06 08:41

「何かしら」って例えばなんでしょうか?
sena14

2018/12/06 08:46

それこそNavigationControllerを導入し戻るボタンが実装されてしまい前の画面へのリンクが出来てしまうなどです。
fuzzball

2018/12/07 00:15 編集

それは導入しなければいいだけの話ですし、現状、導入していないのですから問題にはならないはずですが。
sena14

2018/12/07 02:13

確かにそうですが、リスクを回避したいという考えです。Bはゲーム画面です。そこでスコアを競うのですが、ゲームオーバーでCに遷移した後になにかしらの形でBが開かれスコアが維持された状態で再開されてしまうことを避けたいです。ゲームオーバーになったBを残しておくことはリスクしかないかと思うのですが間違っていますでしょうか?
fuzzball

2018/12/07 02:43

「閉じたBが復活してしまうかもしれない」というリスクについての心配はしなくても大丈夫ですか?
sena14

2018/12/07 12:07

そんなことは考えていなかったです、、、実際に起こりうるのでしょうか?
guest

回答1

0

Navigation Controllerを使って下さい。

投稿2018/12/03 02:36

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sena14

2018/12/04 03:52

navigationControllerを使うと上部にバックキーが出てきてしまいますよね?それであれば使いたくないです。
hameji001

2018/12/16 01:30

バックキーは確かコードで消すことができたと思います。 storyboardでもできるかもしれませんが。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問