错误无法转换为返回类型uiviewcontroller

时间:2017-08-24 08:38:28

标签: ios swift

我使用TYPagerController,我试图显示视图控制器,我有一个错误

  

无法将[uiviewcontroller]类型的返回表达式转换为返回类型' UIViewController'

func tabPagerController(_ tabPagerController: TYTabPagerController, controllerFor index: Int, prefetching: Bool) -> UIViewController {
  let storyboardName = "Main"
  let storyboard = UIStoryboard(name: storyboardName, bundle: Bundle.main)
    var viewControllers = [UIViewController]()
        let categoryCV = storyboard.instantiateViewController(withIdentifier: "homeToCategory") as! CategoryViewController
            viewControllers.append(categoryCV)
        let featuredCV = storyboard.instantiateViewController(withIdentifier: "FeatureViewController") as! featuredViewController
            viewControllers.append(featuredCV)

    return viewControllers
}

3 个答案:

答案 0 :(得分:3)

我认为在这种情况下你所寻找的只是:

return viewControllers[index]

在这种情况下,只需确保numberOfControllersInTabPagerController委托功能中的视图控制器数量为2。

答案 1 :(得分:0)

您的问题是您的函数被编程为返回1 ViewController -> UIViewController。你正在做的是返回一个ViewControllers数组,因此遇到错误return viewControllers

更改函数以返回ViewControllers数组或返回1 View Controller。

希望这有帮助!

答案 2 :(得分:0)

根据您的代码,您的函数的返回类型是 UIViewController

func tabPagerController(_ tabPagerController: TYTabPagerController, controllerFor index: Int, prefetching: Bool) -> UIViewController {

但是你要返回 viewControllers 这是一个UIViewController数组

var viewControllers = [UIViewController]()

更改函数的返回类型或对要返回的UIViewController进行更多的条件编码。