UITabBarController の中で UINavigationController を使っていて、その中で pushViewController で遷移している時に、それ自身の Tab をタップすると、navigationController が rootViewController に戻ってしまう。
これを避けるには UITabBarController の delegate をつなぎ、その delegate の中で以下のように自分自身かどうかを判断して YES/NO を返すようにする。
11/22 加筆
moreNavigationController がある場合、more のタブを2回タップすると、selectedIndexが NSNotFound になってくる。その対処を加えた。
ruby>>
- (BOOL)
tabBarController:(UITabBarController*)pTBC
shouldSelectViewController:(UIViewController*)p {
return pTBC.selectedIndex < pTBC.viewControllers.count
? [ pTBC.viewControllers objectAtIndex:pTBC.selectedIndex ] != p
: YES
;
}
<<--
posted by
Saturn on Wed 17 Nov 2010 at 06:37 with 0 comments