不能将[任何对象]的值赋给[uiviewcontroller]?

时间:2016-01-19 07:46:49

标签: ios swift swift2 uitabbarcontroller ios9

我正在尝试根据我的json响应数组制作uitabbar。

这是我的json回复

tabs =     (
        {

    id = 0;
    name = Home;

},
        {

    id = 1;
    name = Winkel;

},
        {

    id = 2;
    name = Zoeken;

}

);  })

现在这是我试过的代码::

func loadTabbarsWithArray(tabs: [AnyObject]) {
    if self.tabBarController == nil {
        let tabBarController = UITabBarController()

    }
    self.tabBarController!.viewControllers = [AnyObject]()
    var viewControllers: [AnyObject] = [AnyObject](arrayLiteral: 0)
    for record: [NSObject : AnyObject] in tabs {
        var viewController: UIViewController = UIViewController(nibName: "CustomViewController", bundle: nil)
        viewController.title = record["name"]
        viewController.tabBarItem.title = record["name"]
        viewControllers.append(viewController)
    }
    self.tabBarController!.viewControllers = viewControllers as? [UIViewController]
}

这是表示错误enter image description here

的图像

2 个答案:

答案 0 :(得分:2)

在您的代码中,您尝试使用viewControllers对象设置UITabBarViewController的{​​{1}}属性。根据{{​​3}},此属性必须为[AnyObject]

[UIViewController]?

答案 1 :(得分:1)

试试这个代码段:

func loadTabbarsWithArray(let tabs:[[String: Any]]){

        if (self.tabBarController == nil) {
            self.tabBarController = UITabBarController();
        }
        tabBarController!.viewControllers = [UIViewController]();

        var viewControllers = [UIViewController]();
        for  record:[String: Any] in tabs {
            let viewController:UIViewController = UIViewController(nibName: "CustomViewController", bundle: nil);
            viewController.title = record["name"] as? String;
            viewController.tabBarItem.title = record["name"]as? String;
            viewControllers.append(viewController);
        }
        tabBarController!.viewControllers = viewControllers;
    }