ПРИМЕЧАНИЕ. Похоже, что это не работает в iOS 11. В iOS 10 все равно было хорошо.
Это умеренно ужасный ответ, на мой взгляд, отчасти потому, что он подрывает принципы человеческого интерфейса, но, тем не менее, кажется, что он работает чисто:
UITabBar *oldbar = self.tabBarController.tabBar;
UITabBar *newbar = [[UITabBar alloc] initWithFrame:CGRectMake(0,0,oldbar.frame.size.width,oldbar.frame.size.height)];
NSMutableArray *olditems = [[oldbar items] mutableCopy];
[olditems removeObjectAtIndex:0];
NSArray *newitems = [[NSArray alloc] initWithArray:olditems];
[newbar setItems:newitems animated:false];
[oldbar addSubview:newbar];
Этот слой аккуратно размещается поверх старой панели вкладок и сохраняет свою функциональность.