I do not know if you can. UIPageController is not very customizable.
Personally, when I want to scroll through a UIViewController, I prefer to use a simple UIViewController, which will be a container, with a UIScrollView in it. Then I programmatically add all the controllers to the contentSize UIScrollView. You must add all the controllers as a child of the container.
UPDATE iOS 9
func setupDetailViewControllers() { var previousController: UIViewController? for controller in self.controllers { addChildViewController(controller) addControllerInContentView(controller, previousController: previousController) controller.didMoveToParentViewController(self) previousController = controller } } func addControllerInContentView(controller: UIViewController, previousController: UIViewController?) { contentView.addSubview(controller.view) controller.view.translatesAutoresizingMaskIntoConstraints = false // top controller.view.topAnchor.constraintEqualToAnchor(contentView.topAnchor).active = true // bottom controller.view.bottomAnchor.constraintEqualToAnchor(contentView.bottomAnchor).active = true // trailing trailingContentViewConstraint?.active = false trailingContentViewConstraint = controller.view.trailingAnchor.constraintEqualToAnchor(contentView.trailingAnchor) trailingContentViewConstraint?.active = true // leading let leadingAnchor = previousController?.view.trailingAnchor ?? contentView.leadingAnchor controller.view.leadingAnchor.constraintEqualToAnchor(leadingAnchor).active = true // width controller.view.widthAnchor.constraintEqualToAnchor(scrollView.widthAnchor).active = true }
PREVIOUS ANSWER
Same:
scrollView is an IBOutlet with restrictions for each edge of the ContainerViewController
class ContainerViewController: UIViewController { @IBOutlet var scrollView: UIScrollView! override func viewDidLoad() { super.viewDidLoad() scrollView.bounces = false scrollView.pagingEnabled = true } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } override func viewDidLayoutSubviews() { initScrollView() } func initScrollView(){ let viewController1 = storyboard?.instantiateViewControllerWithIdentifier("ViewController1") as! ViewController1 viewController1.willMoveToParentViewController(self) viewController1.view.frame = scrollView.bounds let viewController2 = storyboard?.instantiateViewControllerWithIdentifier("ViewController2") as! ViewController2 viewController2.willMoveToParentViewController(self) viewController2.view.frame.size = scrollView.frame.size viewController2.view.frame.origin = CGPoint(x: view.frame.width, y: 0) scrollView.contentSize = CGSize(width: 2 * scrollView.frame.width, height: scrollView.frame.height) scrollView.addSubview(viewController2.view) self.addChildViewController(viewController2) viewController2.didMoveToParentViewController(self) scrollView.addSubview(viewController1.view) self.addChildViewController(viewController1) viewController1.didMoveToParentViewController(self) }}
source share