2012-08-09 43 views
5

所以我試圖創建一個ibooks式的閱讀器,並且我需要在從webservice獲取數據後動態更新UIPageViewController的內容。由於很長的一系列原因,我必須在開始時對它進行實例化,然後在數據到來時對其進行更新。dataSource發生變化後動態重載UIPageViewController

我是這樣創造的:

NSDictionary *options = 
[NSDictionary dictionaryWithObject: 
[NSNumber numberWithInteger:UIPageViewControllerSpineLocationMin] 
          forKey: UIPageViewControllerOptionSpineLocationKey]; 

self.pageController = [[UIPageViewController alloc] 
         initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl 
         navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal 
         options: options]; 

self.pageController.dataSource = self; 
self.pageController.delegate = self; 

[[self.pageController view] setFrame:[[self view] bounds]]; 

MovellaContentViewController *initialViewController = [self viewControllerAtIndex:0]; 

self.controllers = [NSArray arrayWithObject:initialViewController]; 

[self.pageController setViewControllers:self.controllers 
           direction:UIPageViewControllerNavigationDirectionForward 
           animated:NO 
          completion:nil]; 

[self addChildViewController:self.pageController]; 
[[self view] addSubview:[self.pageController view]]; 
[self.pageController didMoveToParentViewController:self]; 

,然後我只設置​​

我正在尋找類似reloadData爲一個UITableViewController,是有UIPageViewController這樣的事情?

回答

1

主要問題瓦特因爲webview攔截了所有的用戶觸摸,因此UiPageViewController沒有調用委託方法。一旦設置webview忽略用戶觸摸事件,一切都開始正常工作。

11

你必須發送setViewControllers:方向:動畫:完成:給的PageController再次 ,並給它的第一個視圖控制器顯示:

[self.pageController setViewControllers:[NSArray arrayWithObject: 
              [self viewControllerAtIndex:0] 
             ] 
           direction:UIPageViewControllerNavigationDirectionForward 
           animated:NO 
          completion:nil]; 

如果viewControllerAtIndex:正如我首先假定不訪問self.controllers,它也許應該寧可

[self.pageController setViewControllers:[NSArray arrayWithObject: 
              [self.controllers objectAtIndex:0] 
             ] 
           direction:UIPageViewControllerNavigationDirectionForward 
           animated:NO 
          completion:nil]; 

代替

+0

試過了,結果一樣。 – valeriodidonato 2012-08-09 15:31:58

+0

viewControllerAtIndex:訪問self.controllers或其他東西的元素? – 2012-08-09 21:50:02

相關問題