【问题标题】:Cannot convert value of type '()' to expected argument type '[UIViewController]?无法将类型“()”的值转换为预期的参数类型“[UIViewController]?
【发布时间】:2015-09-30 19:36:56
【问题描述】:

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

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]?

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

【问题讨论】:

    标签: ios swift uitabbarcontroller


    【解决方案1】:

    append 对数组进行变异,而不是返回一个带有添加值的新数组。将最后一行拆分为 2:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-27
      • 2016-07-02
      • 2016-03-21
      • 1970-01-01
      相关资源
      最近更新 更多