2012-08-09 9 views
5

इसलिए मैं एक ibooks- जैसे पाठक बनाने की कोशिश कर रहा हूं और मुझे webservice से डेटा प्राप्त करने के बाद गतिशील रूप से UIPageViewController की सामग्री को अपडेट करने की आवश्यकता है। कारणों की एक लंबी श्रृंखला के लिए मुझे शुरुआत में इसे तुरंत चालू करना होगा और फिर डेटा आने पर इसे अपडेट करना होगा।डेटा के बाद 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;

मैं एक UITableViewController के लिए reloadData की तरह कुछ के लिए देख रहा हूँ, वहाँ UIPageViewController के लिए ऐसी बात है?

उत्तर

1

मुख्य समस्या w होना चाहिए क्योंकि वेबव्यू सभी उपयोगकर्ता स्पर्शों को रोक रहा था और इसलिए UiPageViewController प्रतिनिधि विधियों को नहीं बुला रहा था। एक बार उपयोगकर्ता स्पर्श घटनाओं को अनदेखा करने के लिए वेबव्यू सेट करने के बाद सब कुछ ठीक से काम करना शुरू कर दिया।

11

आप setViewControllers भेजना है: दिशा: एनिमेटेड: पूरा होने: pageController के लिए फिर से और यह पहली बार देखने प्रदर्शित करने के लिए नियंत्रक दे: यदि viewControllerAtIndex:self.controllers तक नहीं जाते, जैसा कि मैंने पहली बार में मान लिया

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

, यह शायद नहीं बल्कि

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

+0

कोशिश की, एक ही परिणाम। – valeriodidonato

+0

viewControllerAtIndex है: self.controllers के तत्वों का उपयोग करें या कुछ और? –

संबंधित मुद्दे