Storyboardでの遷移元画面への戻り方

以前まで「Storyboard Segue」で接続した画面遷移から戻る場合、戻るボタンのアクションに「dismissViewControllerAnimated:」やら「popViewControllerAnimated:」やらを実装していました。

でも最近もっと良い戻り方があることを知りました。
その戻り方の実装方法は下記の通りです。




Storyboardを使った前画面への戻り方



ピンクの画面を「View1」、グリーンの画面を「View2」とします。
今回は「Back to View 1」ボタンをタップしたら「View1」に戻る処理を追加します。
f:id:nicolet_jp:20140121185908p:plain

1.まずは「View1」のViewControllerに、戻るときに呼ばれるメソッドを追加します。
ここでは「unwindToView1:」という名称にします。
◯注意:戻り値をIBActionにすること

NCLView1Controller.m
@implementation NCLView1Controller
  〜〜 省略 〜〜

- (IBAction)unwindToView1:(UIStoryboardSegue *)segue
{
  // 前画面から戻った時の処理を追加する。
  // 前画面は[segue sourceViewController]で取得できる。
  NCLView2Controller *view2 = [segue sourceViewController];
}

  〜〜 省略 〜〜
@end


2.Storyboardを開いて、「Back to View 1」ボタンをcontrolを押しながらクリックします。そして、そのまま下にある「Exit」アイコンまでドラッグします。

f:id:nicolet_jp:20140121185431p:plain


3.さきほど定義したメソッド「unwindToView1:」がポップアップで表示されるので、それを選択します。

このように設定することで「View2」から「View1」に戻ることができます。

今回思ったのですが、やっぱり新しい技術はやみくもに使うんじゃなくてしっかり勉強しないと駄目ですね。