TabBarでタップされたら、たどっていた階層を一気にさかのぼる

UITabbarは、ほかのタブに移って、元のタブをタップすると
前の状態で表示されるが、
そこをあえてはじめのViewに戻したい場合
UI本のP82 3.2.3の「ルート画面まで一気にさかのぼる」
を実行すればいいが
はて、InterfaceBuilderで作り込んでいる場合は
どうすればいいかがわからなかったが
どうもAppDelegateにdidSelectViewControllerメソッドを
追加することでいけるらしい

// Optional UITabBarControllerDelegate method
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {

	[viewController popToRootViewControllerAnimated:NO];
	
}

ただし、これだけ書いてもDelegateの働きが伝わっていなければ
呼ばれないので、
IB上でTabBarControllerのDelegateとAppDelegateをつないでおくことが必要です。

DelegateをつないでおくっていうのはIBを使う上でのキモでしょうね。


Delegateの動きとかが見えてくると初心者から少し脱皮かな
と思ったりします。

[iphone][sdk]