タコさんブログ

プログラミングメモと小言

StoryboardのUnwind SegueにIdentifierをつける

Unwind SegueにIdentifierをつけれることを知らなかったので、メモしておきます。

画面遷移

FirstViewControllerにModalボタンを配置して、押されたら、モーダル表示でナビゲーションコントローラに埋め込んだSecondViewControllerの画面を表示。SecondViewControllerのNextボタンでThirdViewControllerに遷移する。Second、ThirdヴューコントローラのナビゲーションバーにCloseボタンを追加して、押されたら、FirstViewControllerに戻る。FirstViewControllerに戻るところでUnwind Segueを使用。

f:id:tiny_wing:20141231181913p:plain

Unwind Segue接続

Unwind Segueを接続するために、まず戻り先のFirstViewControllerにIBActionを実装する。

@IBAction func unwindAction(segue: UIStoryboardSegue) {
    // とりあえず空
}

※これを書かないとCloseボタンからCtrl+ドラッグでExitに繋げようと思っても繋がらないので注意

CloseボタンからCtrl+ドラッグでExitに接続する。

f:id:tiny_wing:20141231183751p:plain

接続が完了したら、View Controller SceneにUnwind segueが追加される。

f:id:tiny_wing:20141231183925p:plain

Unwind segueを選択して、Attribute InspectorのIdentifierにIDをつける。

f:id:tiny_wing:20141231185214p:plain

Unwind segueを接続したViewControllerにprepareForSegueを実装すれば、上でつけたIDがとれる。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    println("\(segue.identifier)")  // Unwindが表示される
}

ソースはGitHubにあります。