I am trying to add a UIPageViewController
programmatically to a custom UICollectionViewCell
. At expected result I want to be able to swipe between different controllers inside the UICollectionViewCell
. This is the code I wrote:
import UIKit
class SlidingCellCell : UICollectionViewCell, UIPageViewControllerDataSource, UIPageViewControllerDelegate{
var pages = [UIViewController]()
let pageControl = UIPageControl()
let pageViewController = UIPageViewController()
override func awakeFromNib() {
super.awakeFromNib()
pageViewController.dataSource = self
pageViewController.delegate = self
let initialPage = 0
let page1 = myViewController1()
let page2 = myViewController1()
let page3 = myViewController1()
self.pages.append(page1)
self.pages.append(page2)
self.pages.append(page3)
pageViewController.setViewControllers([pages[initialPage]], direction: .forward, animated: true, completion: nil)
pageViewController.view.frame = self.frame
}
I am stuck on adding pageViewController
to the cell
. If I write self.addSubview(pageViewController)
I get an error telling me that the function is expecting a UIView
.
I also have another error telling me that the class dose not conform the protocol UIPageViewControllerDataSource
.
1. For Error: function is expecting a UIView
.
override func awakeFromNib()
{
super.awakeFromNib()
//Your code..
self.contentView.addSubview(pageViewController.view)
}
2. For Error: class dose not conform the protocol UIPageViewControllerDataSource
.
Implement the below methods:
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController?
{
//TODO:
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController?
{
//TODO:
}