У меня есть панель вкладок, элементы которой я хочу изменить в зависимости от настроек пользователя. Поэтому мне нужно иметь возможность добавлять/удалять элементы из панели вкладок программно. Вот мой код:set tab bar items programatically
class TabBarViewController: UITabBarController {
var controllerArray = [UIViewController]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.tabBar.tintColor = UIColor.greenColor()
let storyBoard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let controller1 = storyBoard.instantiateViewControllerWithIdentifier("Navigation2") as! nav2
let controller2 = storyBoard.instantiateViewControllerWithIdentifier("Explore") as! ExploreNavigation
let controller3 = storyBoard.instantiateViewControllerWithIdentifier("friends") as! ExploreNav
let controller4 = storyBoard.instantiateViewControllerWithIdentifier("controller3ID") as! controller3VC
controllerArray.append(controller1)
controllerArray.append(controller2)
controllerArray.append(controller3)
controllerArray.append(controller4)
self.tabBarController?.setViewControllers(controllerArray, animated: true)
}
}
, но если я закомментировать одну из линий, например, как это:
//controllerArray.append(controller2)
так, что этот контроллер не обособленно controllersArray, контроллер по-прежнему отображается в панель вкладок. Что я делаю не так?
Я также попробовал это, и это не сработало:
self.tabBarController?.viewControllers = controllerArray
Вы хотите изменить элементы в панели вкладок или контроллерах вида в контроллере панели вкладок или обоих? Вы называете одно, но ваш вопрос предлагает другой. – beyowulf
Извините, я не совсем понимаю разницу между контроллером вида в панели вкладок и элементом панели вкладок. элемент панели вкладок означает логотип внутри панели вкладок? Я хочу сказать, что я хочу, чтобы четвертая (последняя вкладка) имела другой логотип/изображение и другой контроллер вида на четвертой вкладке. Надеюсь, это ясно. – joey
Этот код не имеет смысла. Ваш 'TabBarViewController' расширяет' UITabBarController', но у него также есть свойство типа 'UITabBarController'. Он должен быть тем или иным, а не тем и другим. – rmaddy