こちらの記事で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として指定してみましょう
PrevFlipSegueはここではmyUnwindSegueにあたります。
FirstViewControllerからSecondViewControllerへの遷移した後、 UnwindSegueを用いてFirstViewControllerに戻る場合には、FirstViewControllerにこの記述をします。
SecondからThirdへの遷移後のUnwindSegueを用いてSecondに戻る際には、Secondにも記述が必要です。
ちなみにiOS9でも動きます!
StoryBoard上でClassを設定すればiOS9上では動きますが、その他のOSでは動きませんので現状ではこちらのコードを書いておいた方が良いと思います。
無事動かせたので今度こそスッキリ!
参考リンク
Additional Notes追記
iOS8はもういいかな・・・
自分のアプリではiOS8はもう切りました。
カスタムセグエに関しては【Swift】カスタムSegueとカスタムUnwindSegueを作成する【Xcode7.1/iOS9】の方にSwift4に対応したコードを追記しておいたのでそちらを参照してください。
コメントはありません。
現在コメントフォームは工事中です。