Ios UIPageViewController针对不同索引提供多种类型

Ios UIPageViewController针对不同索引提供多种类型,ios,swift,uiviewcontroller,uipageviewcontroller,Ios,Swift,Uiviewcontroller,Uipageviewcontroller,我有一个这样的班级 class CardItemController: UIViewController,UIPageViewControllerDataSource class CardController: SuperUIPageController { class CardImagePageController: SuperUIPageController,UIPageViewControllerDataSource { 根据项目索引,我需要使用不同的UIViewController子

我有一个这样的班级

class CardItemController: UIViewController,UIPageViewControllerDataSource
class CardController: SuperUIPageController {
class CardImagePageController: SuperUIPageController,UIPageViewControllerDataSource {
根据项目索引,我需要使用不同的UIViewController子类,如

私有函数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
根据索引使用不同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代码示例: