カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

前の画面に戻る unwind segue

この記事は最終更新日から1年以上経過しています。

複数のシーンを作成し、移動するアプリを制作する際、Androidのように戻るボタンがありませんので、その辺もきちんと実装しておく必要があります。
NavigationControllerを使えば簡単なのですが、今日はそれを使わない場合の方法をご紹介します。

遷移元のViewControllerに以下のコードを追加します。

@IBAction func unwindMe(segue: UIStoryBoardSegue) {
}

中身は何もなくて構いません。

次に遷移先のViewControllerに戻るボタンを配置します。
配置したボタンをControlを押しながらExitに結び付けます。

これだけで遷移元のViewControllerに戻ることができます。

また、コードで実行したい時は、ドキュメントアウトラインでExitの下に追加されたUnwind segue…を選択し、Identifierを設定します。

ここでは「backToMain」とします。

後は以下のコードを実行します。

performSegue(withIdentifier: "backToMain", sender: self)

ちなみに、最初のコードを以下のようにすれば、どの遷移先から戻ってきたかによって処理を分岐できるようです。

@IBAction func unwindMe(segue: UIStoryBoardSegue) {
    if segue.identifier == "backToMain" {
        //....何らかの処理
    }
}

Xcode: 8.3.1
Swift: 3.1
OS: Sierra 10.12

この記事がお役に立ちましたらシェアお願いします
6,986 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です