2012-08-09 15 views
5

böylece ibooks benzeri bir okuyucu oluşturmaya çalışıyorum ve web servisinden verileri aldıktan sonra UIPageViewController'ın içeriğini dinamik olarak güncellemem gerekiyor. Uzun bir dizi nedenden ötürü baştan başlatayım ve sonra veri geldiğinde güncellemeliyim.VeriSource değiştirdikten sonra UIPageViewController'ı dinamik olarak yeniden yükleyin.

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]; 

ve sonra sadece self.controllers = newControllersArray;

, UIPageViewController için böyle bir şey Bir UITableViewController için reloadData gibi bir şey arıyorum

var ayarlayın:

ben böyle yaratıyorum?

cevap

1

temel sorun w olmalıdır Web görünümü tüm kullanıcı dokunuşlarını engellediğinden ve bu nedenle UiPageViewController temsilci yöntemlerini çağırmıyordu. Webview'i kullanıcı dokunma olaylarını yok sayacak şekilde ayarladıktan sonra her şey düzgün çalışmaya başladı.

11

Sen setViewControllers göndermek zorunda: yönü: animasyonlu: tamamlama: pageController tekrar ve bu ekrana ilk görünüm denetleyicisi vermek:

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

Ben ilk varsayıldığı gibi self.controllers erişmez viewControllerAtIndex: ise muhtemelen oldukça

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

yerine

+0

Denenmiş, aynı sonuç. – valeriodidonato

+0

, ViewControllerAtIndex'i görüntülemez: self.controllers öğelerinin öğelerine veya başka bir şeye erişir? –

İlgili konular