我一直在研究一个简单的测试应用程序来学习UIPageViewController的细节.我有它工作,但我不相信我的执行是最好的方式.我希望你们中的一些人能指出我正确的方向.
为了获得基本的理解,我以本教程为出发点. http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/
本教程创建了一个应用程序,该应用程序viewController对每个页面使用一个应用程序UIPageViewController.但是我需要利用UIPageViewController来滚动具有完全不同布局的页面.因此,为了使教程更进一步,我创建了一个主 - 详细信息应用程序,它在详细视图中使用UIPageViewController来显示三个不同的视图控制器.我坚持只为这个测试应用程序显示图像和标签,但我目前正在构建的应用程序有三个viewControllers,它们将包含tableview,imageView和textViews,或者一些textFields.
这是我的测试应用程序的故事板.

我用它DetailViewController作为数据源PageViewController.在viewDidLoad所述的DVC我建立将在三个内容视图控制器中使用的标签和图像firstViewController,secondViewController和thirdViewController以这种方式.
if ([[self.detailItem description] isEqualToString:@"F14's"]) {
//Here the page titles and images arrays are created
_pageTitles = @[@"Grim Reapers", @"Breakin the Barrier!", @"Top Gun"];
_pageImages = @[@"F14_Grim.jpg", @"F14boom.jpg", @"F14_topgun.jpg"];
//Here I call a method to instantiate the viewControllers
FirstController *selectedController = [self viewControllerAtIndex:0];
SecondController *nextController = [self viewControllerAtIndex:1];
ThirdController *lastController = [self viewControllerAtIndex:2];
[_vc addObject:selectedController];
[_vc addObject:nextController]; …Run Code Online (Sandbox Code Playgroud) 我正在尝试UIPageViewController在具有多个视图控制器的Swift应用程序中使用它.我的故事板(firstViewController和secondViewController)上有2个视图控制器,它们都嵌入在自己的导航控制器中.他们有故事板标识符" FirstViewController"和" SecondViewController".我的故事板上还有一个带identifierPageView控制器的页面视图控制器,并将导航设置为水平,过渡样式在属性检查器中滚动.FirstViewController是应用程序的根视图控制器
我想firstViewController成为页面视图控制器的第一页,所以我写了这样的类:
import Foundation
import UIKit
class FirsttViewController: UITableViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
override func viewDidLoad() {
let pageViewController: PageViewController = self.storyboard.instantiateViewControllerWithIdentifier("PageViewController") as PageViewController
pageViewController.delegate = self
var viewControllers: [UIViewController] = [self]
pageViewController.setViewControllers(viewControllers, direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height)
self.addChildViewController(pageViewController)
self.view.addSubview(pageViewController.view)
pageViewController.didMoveToParentViewController(self)
}
func pageViewController(pageViewController: UIPageViewController!, viewControllerAfterViewController viewController: UIViewController!) -> UIViewController! {
let secondViewController: SecondViewController = self.storyboard.instantiateViewControllerWithIdentifier("SecondViewController") as SecondViewController …Run Code Online (Sandbox Code Playgroud)