mtmr_t's blog

ひよっこiosぷろぐらま

didSelectViewControllerを使って、プロトコルの判別を行い、tabbarを制御する

現在、TabBarと、navigationのどちらも使ったアプリを作成しています。

その中で、didSelectViewControllerメソッドを使っても、

プロトコル判別が動作しなーい!!

 

と、つまづいてしまったのでメモ。

 

参考はコチラ↓

http://ameblo.jp/fumin65/entry-11341997812.html

 

まずは、プレーンなタブバーで試してみると、正常に動作する。

問題は、タブバーの先でナビゲーション遷移しているパターン。

 

デバッグ実行すると分かるが、このメソッドが返しているViewControllerは…

UIViewControllerではなかった!!

 

- (void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {}

 

実際はUINavigationControllerが帰ってきており、

プロトコルの実装を判別しようとするも、もちろんナビゲーションには定義していない。

 

1。ナビゲーションカスタムクラスを作成して、そこにプロトコルを実装する

2。タブで切り分けて、didSelectViewControllerの中で処理をしてしまう

 

今回は2を選択しました。

場合によっては1の方が良いと思います(後々も含めて)

 

いじょ