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
我有一个 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