2016-01-23 85 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