【Swift】カスタムUnwindSegueを作成する【iOS8編】

こちらの記事でxcode7.1のiOS9環境でのカスタムSegueについて紹介しました。

【Swift】カスタムSegueとカスタムUnwindSegueを作成する【Xcode7.1】

しかし私のiOS7のiPhone4sちゃんで試してみるとアニメーションが適用されていないという事態。

iOS7、iOS8環境でも動かせる方法がわかったので、つけたした部分だけ紹介します。

カスタムUnwindSegueを作成する 

書き足したコードはこの部分です

override func segueForUnwindingToViewController(toViewController: UIViewController, fromViewController: UIViewController, identifier: String?) -> UIStoryboardSegue? {
    if let id = identifier {
          let unwindSegue = myUnwindSegue(identifier: id, source: fromViewController, destination: toViewController, performHandler: { () -> Void in
          })
                return unwindSegue
          }
     return super.segueForUnwindingToViewController(toViewController, fromViewController: fromViewController, identifier: identifier)!
}

 

myUnwindSegueは作成したカスタムSegueファイルです。

UnwindSegueに関して

Unwind Segueが実行される時、戻り先のViewControllerのメソッドでsegueForUnwindingToViewControllerを探します。もしsegueForUnwindingToViewControllerが実装されている場合は、そのメソッドが返すSegueをUnwind Segueとして使用します。では、PrevFlipSegueをUnwind Segueとして指定してみましょう

参照元:Storyboard – カスタムSegueとカスタムUnwind Segueの作り方

PrevFlipSegueはここではmyUnwindSegueにあたります。

 

記述する場所は戻り先のViewControllerです

 

FirstViewControllerからSecondViewControllerへの遷移した後、 UnwindSegueを用いてFirstViewControllerに戻る場合には、FirstViewControllerにこの記述をします。

SecondからThirdへの遷移後のUnwindSegueを用いてSecondに戻る際には、Secondにも記述が必要です。

 

ちなみにiOS9でも動きます!

StoryBoard上でClassを設定すればiOS9上では動きますが、その他のOSでは動きませんので現状ではこちらのコードを書いておいた方が良いと思います。

 

無事動かせたので今度こそスッキリ!

 

2018/04/14追記 iOS8はもういいかな・・・
自分のアプリではiOS8はもう切りました。

カスタムセグエに関しては【Swift】カスタムSegueとカスタムUnwindSegueを作成する【Xcode7.1/iOS9】の方にSwift4に対応したコードを追記しておいたのでそちらを参照してください。
Swift ,

Comments...

コメントは認証制です。詳しくは下記の注意をお読みください。お気軽にコメントお願いします!

Write a Comment

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

Related Memo...

記事を書くほどでもないけれどメモっておきたいこと

テスト投稿。

例えばiphone7 の画面サイズ

750 × 1334
半分375 × 667

iOS
more