无法将类型'()'的值转换为预期的参数类型'[UIViewController]?

时间:2015-09-30 19:36:57

标签: ios swift uitabbarcontroller

在我的应用程序中,我试图做这样的事情:

class tabBarController : UITabBarController {

    ...

    func example (){
        let navController : UINavigationController = UINavigationController(rootViewController: calendarVC) //calendarVC is a UIViewController

        guard var VCs = self.viewControllers as [UIViewController]? else{
            self.setViewControllers([navController], animated: false)
            return
        }
        self.setViewControllers(VCs.append(navController), animated: false)
    }

    ...

}

但是在函数的最后一行我收到了一个错误:

  

无法将'()'类型的值转换为预期的参数类型'[UIViewController]?

我该如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:3)

append改变数组,而不是返回添加了值的新数组。将最后一行拆分为2:

VCs.append(navController)
self.setViewControllers(VCs, animated: false)