【Swift4】NavigationControllerをunwindするsegueを記述した

研究
この記事は約1分で読めます。

やれれば容易いんだけれど意外にハマったので記述。

  1. 戻り先のViewControllerに先に以下の記述を入れる。
@IBAction func unwindNavigationControllerAction(segue: UIStoryboardSegue) {
	// なにがしかの処理
}
  1. storyboard上で該当の戻るボタンをCtrl+ドラッグでExitへ繋ぐ。
  2. 接続先のfunctionに上記のfunctionを指定する。

パタパタ閉じるのみなら、これでOK。

参考サイト

StoryboardのUnwind SegueにIdentifierをつける – タコさんブログ

Unwind SegueにIdentifierをつけれることを知らなかったので、メモしておきます。 FirstViewControllerにModalボタンを配置して、押されたら、モーダル表示でナビゲーションコントローラに埋め込んだSecondViewControllerの画面を表示。SecondViewControllerのNextボタンでThirdViewControllerに遷移する。Second、ThirdヴューコントローラのナビゲーションバーにCloseボタンを追加して、押されたら、FirstViewControllerに戻る。FirstViewControllerに戻るところでUnwind Segueを使用。 Unwind Segueを接続するために、まず戻り先のFirstViewControllerにIBActionを実装する。 @IBAction func unwindAction(segue: UIStoryboardSegue) { } ※これを書かないとCloseボタンからCtrl+ドラッグでExitに繋げようと思っても繋がらないので注意 CloseボタンからCtrl+ドラッグでExitに接続する。 接続が完了したら、 View Controller SceneにUnwind segue が追加される。 Unwind segueを選択して、Attribute InspectorのIdentifierにIDをつける。 Unwind segueを接続したViewControllerにprepareForSegueを実装すれば、上でつけたIDがとれる。 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { println(” ( segue.identifier)”) } ソースは GitHub にあります。

コメント

タイトルとURLをコピーしました