2014-01-14 5 views
5

В настоящее время у меня есть несколько viewControllers, которые имеют отношения с моим tabBarController через Storyboard. Учитывая определенные настройки, я хотел бы программно сделать скрытый или видимый определенный viewController. Я могу скрыть весь tabBar, но это не то, что мне нужно. Я играл в Xcode и чистил interwebs, но не могу найти решение. что-то вроде нижнего, что меня не смущает!Скрыть элемент в tabBar?

[[self.tabBarController.tabBar.items objectAtIndex:2] setHidden:YES]; 

ответ

8

Используется похожий код, чтобы исправить эту проблему.

NSMutableArray *newTabs = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers]; 
[newTabs removeObjectAtIndex: 3]; 
[newTabs removeObjectAtIndex: 2]; 
[self.tabBarController setViewControllers:newTabs]; 
0

Чтобы изменить UITabBar, установите его свойство items к чему-то новому

UITabBar *tabBar = self.tabBarController.tabBar; 
NSMutableArray *newTabs = [NSMutableArray arrayWithArray:tabBar.items]; 
[newTabs removeObjectAtIndex: 2]; 
tabBar.items = newTabs; 
+0

cool, а затем я думаю, addObjectAtIndex, чтобы включить его позже? – veggyaurus

+3

Не работает: «NSInternalInconsistencyException», причина: «Невозможно изменить панель вкладок, управляемую контроллером панели вкладок». – veggyaurus

0

Оказывается, вы можете сделать это в одной строке:

tabBarController?.viewControllers?.remove(at: 1) 

Предположим, что 1 является индекс элемента, который вы хотите удалить.

Смежные вопросы