【问题标题】:set tab bar items programmatically以编程方式设置标签栏项目
【发布时间】:2016-02-19 14:22:40
【问题描述】:

我有一个标签栏,我想根据用户的设置更改其项目。所以我需要能够以编程方式从标签栏中添加/删除项目。这是我的代码:

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)

因此该控制器不属于控制器阵列,控制器仍显示在选项卡栏中。我做错了什么?

我也试过了,还是不行:

 self.tabBarController?.viewControllers = controllerArray

【问题讨论】:

  • 您要更改选项卡栏中的项目或选项卡栏控制器中的视图控制器,还是两者都更改?你的标题暗示了一个,但你的问题暗示了另一个。
  • 对不起,我不太明白标签栏中的视图控制器和标签栏项目之间的区别。标签栏项目是指标签栏内的标志?我要说的是,我希望第 4 个(最后一个选项卡)在第 4 个选项卡内具有不同的徽标/图像和不同的视图控制器。我希望这很清楚。
  • 这段代码没有意义。你的TabBarViewController 扩展了UITabBarController,但它似乎也有一个UITabBarController 类型的属性。它应该是一个或另一个,而不是两者。

标签: ios swift uitabbarcontroller


【解决方案1】:

直接说

self.setViewControllers(controllerArray, animated: true)

而不是

self.tabBarController?.setViewControllers(controllerArray, animated: true)

您正在继承 UITabBarController 而不是 UIViewController,因此您没有或至少不需要属性 tabBarController。

【讨论】:

    猜你喜欢
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 2017-01-14
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多