我使用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
}
答案 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进行更多的条件编码。