mzgkworks

iOSを中心にプログラミング関係について書く

【Objective-C】Navigation ControllerからトップにあるViewControllerに戻る方法

SingleViewアプリケーションで作成を開始し、遷移先にNavigationControllerを追加。
遷移したNavigationControllerの下からトップ画面に戻りたい場合の実装方法。

f:id:mzgkworks:20150129195559p:plain

unwindsegueの追加

トップ画面のViewController.mにunwindsegueの処理を追加する。

// 他画面からトップに戻る際に必要
- (IBAction)unwindToTop:(UIStoryboardSegue *)segue
{
}

Navigation Itemに戻るボタンを表示させる

NavigationBarを選択し、Back Buttonに表示する文言をいれる。

f:id:mzgkworks:20150129195625p:plain

アシスタントエディタを開き、ボタンをSecondViewController.mにOutlet接続する。

f:id:mzgkworks:20150129195650p:plain

ボタンを追加するメソッドを書く。

@implementation SecondViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    // ↓↓追加(NavigationBarの左側にボタンを追加する)
    self.navigationItem.leftBarButtonItem = self.BackButton;
}

戻るボタンとunwindsegueの接続

SecondViewControllerのExitを選択し、ユーティリティエリアのコネクションインスペクタを表示する。
トップ画面のViewControllerに追加したunwindsegueが表示される。
右の丸からドックに表示されている「戻るよ」に接続する。

f:id:mzgkworks:20150129195704p:plain

f:id:mzgkworks:20150129195718p:plain

これで、SecondViewの左上に表示された「戻るよ」ボタンからトップ画面へ戻ることができる。