Добавить/Удалить или Показать/Скрыть элементы панели вкладок от UITabbarController при использовании раскадровки

У меня есть приложение, которое должно показывать различный контент с UITabBarController на основе регистрации пользователя или нет. Есть ли способ добавить и удалить ViewController из UITabBarController во время выполнения? Показать и скрыть тоже будет хорошо.

До раскадровки вы можете вызвать setViewController, но это не кажется правильным способом при использовании табличных платформ.

Ответ 1

Вы можете удалить элемент вкладки следующим образом:

NSMutableArray *tabbarViewControllers = [NSMutableArray arrayWithArray: [self.tabBarController viewControllers]];
[tabbarViewControllers removeObjectAtIndex: /*Any index*/];
[self.tabBarController setViewControllers: tabbarViewControllers ];

Ответ 2

Свифт 4+

func removeTab(at index: Int) {
        guard var viewControllers = self.tabBarController?.viewControllers else { return }
        viewControllers.remove(at: index)
        self.tabBarController?.viewControllers = viewControllers
    }

Ответ 3

При проектировании в раскадровке мы можем скрыть панель вкладок, используя опцию Bottom-bar, как ни один из файловых инспекторов.

enter image description here