2016-01-23 80 views
1

我在登录后在我的应用程序中创建基本UIPageViewController。但是,我会修改分页并将初始视图控制器设置为中间状态(页面A)like thisUIPageviewcontroller滑动页面不工作

登录后,它只能显示初始值,但分页不起作用。我怎么解决这个问题?如果您需要更多信息,请留下评论。

class MainPageViewController: UIViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate { 


var pageViewController: UIPageViewController! 
let pages = ["SecondVC","MainVC","ThirdVC"] 


//MARK: Page view controller datasource 

func pageViewController(pageViewController: UIPageViewController, 
    viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { 

     if let index = pages.indexOf(viewController.restorationIdentifier!){ 
      if index > 0 { 
       return viewControllerAtIndex(index - 1) 
      } 
     } 

     return nil 
} 

func pageViewController(pageViewController: UIPageViewController, 
    viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { 

     if let index = pages.indexOf(viewController.restorationIdentifier!){ 

      if index < pages.count - 1 { 
       return viewControllerAtIndex(index + 1) 
      } 
     } 
     return nil 
} 

func viewControllerAtIndex(index: Int) -> UIViewController?{ 
    let vc = storyboard?.instantiateViewControllerWithIdentifier(pages[index]) 
    return vc 
} 


override func viewDidLoad() { 
    super.viewDidLoad() 

    if let vc = storyboard?.instantiateViewControllerWithIdentifier("StructurePageViewController"){ 
     self.addChildViewController(vc) 
     self.view.addSubview(vc.view) 

     pageViewController = vc as! UIPageViewController 
     pageViewController.dataSource = self 
     pageViewController.delegate = self 

     pageViewController.setViewControllers([viewControllerAtIndex(0)!], direction: .Forward, animated: true, completion: nil) 
     pageViewController.didMoveToParentViewController(self) 

    } 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

enter image description here

+0

请说明你希望看到你所看到的和什么。 –

+0

看来你删除了可能是问题的一部分的初始化代码。 –

+0

它只能显示一页(橙色页面),但刷卡不起作用。 – yoadle

回答

1

在源代码中你有行

pageViewController.setViewControllers([viewControllerAtIndex(0)!], direction: .Forward, animated: true, completion: nil) 

它选择页面左侧开始(索引0)。尝试

pageViewController.setViewControllers([viewControllerAtIndex(1)!], direction: .Forward, animated: true, completion: nil) 

在索引1 =中间页=页A.启动

+0

它仍然没有工作... – yoadle