Это стандартное поведение панели вкладок, если вы устанавливаете ее так, чтобы каждая вкладка указывала на отдельный контроллер представления в главном файле пера. На самом деле это весьма полезно, позволяя пользователю глубоко перемещаться в пределах определенного стека, а затем нажать кнопку, которая уже выбрана, чтобы вернуться на домашний / верхний уровень.
Обратите внимание, что это происходит только при нажатии на вкладку, которую вы уже выбрали. Вы могли бы реализовать строку в делегате панели вкладок, которая перехватывает щелчок на вкладке и игнорирует ее, если эта вкладка уже выбрана.
Для этого вам нужно будет вручную управлять отображением различных контроллеров представления. Вы хотите реализовать этот метод:
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
, а затем самостоятельно добавьте различные виды в стеки навигации.