2010-03-21 3 views
0

Если в одном из моих представлений есть панель навигации и панель вкладок. Все это работает нормально. Один из элементов панели табуляции требует нажатия нескольких других контроллеров представлений в стеке навигации, прежде чем я получу то, где мне нужно. Это также работает. Когда я нажимаю на элемент панели вкладок, он марширует обратно в стек. Как я могу сделать желаемый джойстик контроллера в элементе панели вкладок?TabBar Stop Popping

+0

Как раз в сторону, вы не нажимаете на iPhone, вы нажимаете на них. –

ответ

1

Это стандартное поведение панели вкладок, если вы настроили ее с каждой вкладкой, указав на другой контроллер представления в главном файле nib. Это на самом деле очень полезно, позволяя пользователю глубоко перемещаться внутри определенного стека, а затем нажмите кнопку табуляции, которая уже выбрана для возврата на домашний/верхний уровень.

Обратите внимание, что это происходит только при нажатии на выбранную вами вкладку. Вы можете реализовать строку в делегате панели вкладок, которая перехватывает щелчок на вкладке и игнорирует ее, если эта вкладка уже выбрана.

Для этого вам необходимо вручную обрабатывать отображение различных контроллеров представлений. Вы хотите реализовать этот метод:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 

а затем нажимать различные виды на стеки навигации самостоятельно.

+0

Спасибо за помощь. Вы не можете изменить appdelegate для вкладки, когда в NavigationController. Я смог сделать то же самое, переопределив - (BOOL) tabBarController: (UITabBarController *) tbController shouldSelectViewController: (UIViewController *) vwController –