UIPageViewController 针对不同索引的多种类型

UIPageViewController multiple types for different indexes

我有一个 class 这样设置的

class CardItemController: UIViewController,UIPageViewControllerDataSource

根据项目索引,我需要使用不同的 UIViewController Subclass,例如

private func getItemController(itemIndex: Int) -> SuperUIPageController? {

if itemIndex < cards.count {
    if itemIndex == 0{
        let pageItemController = CardImagePageController()
        pageItemController.itemIndex = itemIndex
        pageItemController.labelText = labelText
        //pageItemController.screenWidth = self.frame.width
        return pageItemController
    }else{
    let pageItemController = CardController()
    pageItemController.itemIndex = itemIndex
    pageItemController.labelText = labelText
    //pageItemController.screenWidth = self.frame.width
    return pageItemController
    }
}

return nil

}

CardController 和 CardImagePageController 看起来像这样

class CardController: SuperUIPageController {
class CardImagePageController: SuperUIPageController,UIPageViewControllerDataSource {

根据索引使用不同的 UIViewController 的正确方法是什么?现在我收到各种错误,例如 在 CardImagePageController 中,我得到:

Type 'CardImagePageController' does not conform to protocol 'UIPageViewControllerDataSource'

当我有这些方法时

    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {


func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {

private func getItemController(itemIndex: Int) -> CardImageController? {

在此处查看 UIPageViewController 代码示例:https://github.com/dimpiax/UIPageViewControllerScrolling