2017-06-29 26 views
3

我已用定時器來實現的UIPageViewController自動滾動每5秒後是這樣的:UIPageViewController滾動自動發出

 _bannerTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 
             target:self 
             selector:@selector(loadNextController) 
             userInfo:nil 
             repeats:YES]; 


    - (void)loadNextController 
     { 

     self.index++; 

     HeaderAdVC *nextViewController; 
     if(self.index>arrayImages.count-1) 
     { 
      self.index=0; 
      [pageIndicator setCurrentPage:0]; 
      nextViewController = [self viewControllerAtIndex:0]; 
     } 
     else 
     { 
      nextViewController = [self viewControllerAtIndex:self.index]; 
     } 


     [pageIndicator setCurrentPage:self.index]; 
     [pageController setViewControllers:@[nextViewController] 
           direction:UIPageViewControllerNavigationDirectionForward 
            animated:YES 
           completion:nil]; 


    } 

以及去除所述計時器在viewWillDisappear

-(void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 

    [_bannerTimer invalidate]; 
} 

問題:

我的問題是當loadNextController方法被稱爲我的應用程序最高迴應。 如果我切換到下一頁仍然在每個視圖上都遇到同樣的問題。

+0

應該停止計時器在loadNextController –

+0

我m無效定時器'viewWillDisappear' –

+0

我可以看到你的錯誤控制檯嗎? –

回答

1

做到像下面的一些變化,做好後臺線程所有non-ui任務,並在主線程所有UI操作,試試這個

- (void)loadNextController 
{ 

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){ 

     self.index++; 

     HeaderAdVC *nextViewController; 
     if(self.index>arrayImages.count-1) 
     { 
      self.index=0; 
      [pageIndicator setCurrentPage:0]; 
      nextViewController = [self viewControllerAtIndex:0]; 
     } 
     else 
     { 
      nextViewController = [self viewControllerAtIndex:self.index]; 
     } 

     dispatch_async(dispatch_get_main_queue(), ^{ 
      [pageIndicator setCurrentPage:self.index]; 
      [pageController setViewControllers:@[nextViewController] 
            direction:UIPageViewControllerNavigationDirectionForward 
             animated:YES 
            completion:nil]; 
     }); 



    }); 
} 

我希望這將幫助你..

+0

謝謝這對我有用...... :) –