2016-01-31 87 views
0

我有一個PageViewController,我在一個ViewController創建的,你可以在下看到:PageViewController嵌入到其他PageViewController

MainViewController(viewDidLoad中())

self.pageViewController = UIPageViewController(transitionStyle: .Scroll, navigationOrientation: .Horizontal, options: nil) 
self.pageViewController.dataSource = self 
self.pageViewController.delegate = self; 
self.pageViewController.view.frame = CGRectMake(0, 100, self.view.frame.size.width, self.view.frame.size.height) 
let initialViewController : UIViewController! = viewControllerArray.objectAtIndex(self.currentPageIndex) as! UIViewController 
let viewControllers: NSArray? = NSArray(objects: initialViewController) 

pageViewController.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated:true, completion: nil) 

self.addChildViewController(self.pageViewController) 
self.view.addSubview(self.pageViewController.view) 
self.pageViewController.didMoveToParentViewController(self) 
    self.syncScrollView() 

而且萬事大吉。這viewController風風火火的方法事件

func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int 

我的問題是,這pageViewController的頁面中的一個具有其他UIPageViewController內,與其他的UIViewController相關。我創建了其他UIPageViewController的方法是:

SecondViewController(viewDidLoad()

self.pageNoticiaViewcontroller = UIPageViewController(transitionStyle: .Scroll, navigationOrientation: .Vertical, options: nil) 
      self.pageNoticiaViewcontroller.didMoveToParentViewController(self); 
    self.pageNoticiaViewcontroller.dataSource = self; 
    self.pageNoticiaViewcontroller.delegate = self; 

    let startVC = self.getControllerAtIndex(0) as InicioIndividualUIViewController; 

    let viewControllers = NSArray(object: startVC); 

    self.pageNoticiaViewcontroller.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated: true, completion: nil); 

    self.pageNoticiaViewcontroller.view.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height - 40); 

    self.addChildViewController(self.pageNoticiaViewcontroller); 
    self.view.addSubview(self.pageNoticiaViewcontroller.view); 

的問題是:

第二PageViewController(pageNoticiaViewController不會調用該方法presentationCountForPageViewController,但它調用父母的方法presentationCountForPageViewController

我該怎麼做第二個PageViewController調用第二個UIViewController的方法presentationConuntForPageViewController,而不是調用父方法?非常感謝你!

回答

3

我想你一定要試試這樣:

self.pageViewController.view.tag=0 

self.pageNoticiaViewcontroller.view.tag=1 

,並把條件數據源和委託方法像

例如:

func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int 
{ 

if pageController.view.tag == 0 
{ 
    return yourcount // here self.pageViewController count 
} 
else 
    { 
    return yourcount // here self.pageNoticiaViewcontroller count 
    } 
} 
相關問題