相关疑难解决方法(0)

如何实现利用多个ViewControllers的UIPageViewController

我一直在研究一个简单的测试应用程序来学习UIPageViewController的细节.我有它工作,但我不相信我的执行是最好的方式.我希望你们中的一些人能指出我正确的方向.

为了获得基本的理解,我以本教程为出发点. http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/

本教程创建了一个应用程序,该应用程序viewController对每个页面使用一个应用程序UIPageViewController.但是我需要利用UIPageViewController来滚动具有完全不同布局的页面.因此,为了使教程更进一步,我创建了一个主 - 详细信息应用程序,它在详细视图中使用UIPageViewController来显示三个不同的视图控制器.我坚持只为这个测试应用程序显示图像和标签,但我目前正在构建的应用程序有三个viewControllers,它们将包含tableview,imageView和textViews,或者一些textFields.

这是我的测试应用程序的故事板.

故事板

我用它DetailViewController作为数据源PageViewController.在viewDidLoad所述的DVC我建立将在三个内容视图控制器中使用的标签和图像firstViewController,secondViewControllerthirdViewController以这种方式.

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)

uiviewcontroller ios uipageviewcontroller

34
推荐指数
2
解决办法
5万
查看次数

Swift - UIPageViewController总是重复第二个ViewController

设置:我正在尝试创建一个带有嵌入式UIPageViewController的ViewController,它有4个页面,每个页面都是自己的ViewController.

问题:滚动时总是重复第二个视图.例如,使用View1,View2,View3,View4滚动显示View1,View2,View2,View3,View4然后向后滚动具有此顺序View4,View3,View3,View2,View1即使页面控件准确.

我在网上看了很多教程,包括这里这里的答案.

这是我的页面视图控制器类:

import UIKit

class HostGamePageViewController: ROLViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource {

  // Constants
  let ViewControllers: NSArray = ["HostGameTest1", "HostGameTest2", "HostGameTest3", "HostGameTest4"]

  // Properties
  var pageViewController: UIPageViewController!
  var currentViewController: String!

  // UI
  @IBOutlet var pageControl: UIPageControl!

  override func viewDidLoad() {
    super.viewDidLoad()

    pageViewController = storyboard?.instantiateViewControllerWithIdentifier("HGPageViewController") as? UIPageViewController
    pageViewController.delegate = self
    pageViewController.dataSource = self

    let startingViewController = viewControllerAtIndex(0)!
    pageViewController.setViewControllers([startingViewController], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: {done in })

    addChildViewController(pageViewController)
    view.addSubview(pageViewController.view)
    pageViewController.view.frame = view.bounds
    pageViewController.didMoveToParentViewController(self)
    view.gestureRecognizers = pageViewController.gestureRecognizers

    // Setup …
Run Code Online (Sandbox Code Playgroud)

ios uipageviewcontroller swift

3
推荐指数
1
解决办法
3749
查看次数