2012-08-09 2 views
5

그래서 ibooks와 같은 리더를 만들려고하고 있으며 웹 서비스에서 데이터를 가져온 후에 동적으로 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]; 

을하고 난 그냥 self.controllers = newControllersArray;

이 UIPageViewController에 대한 그런 일 내가있는 UITableViewController에 대한 reloadData 같은 것을 찾고 있어요

을가 설정 :

나는이처럼 만드는거야?

답변

1

가장 큰 문제 w해야한다 webview가 모든 사용자 접촉을 가로 채고 있었으므로 UiPageViewController가 대리자 메서드를 호출하지 못했습니다. 일단 사용자 터치 이벤트를 무시하도록 webview를 설정하면 모든 것이 제대로 작동하기 시작합니다.

11

당신은 setViewControllers을 보낼 수있다 : 방향 : 애니메이션 : 완성은 다음 pageController 다시 하고 그것을 디스플레이로 첫 번째보기 컨트롤러 제공 :

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

내가 처음 가정으로 self.controllers 액세스하지 않습니다 viewControllerAtIndex: 경우를, 아마 오히려

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

대신

+0

시도해 보면 같은 결과가 나타납니다. – valeriodidonato

+0

viewControllerAtIndex : self.controllers 또는 다른 요소에 액세스 할 수 있습니까? –