2015-08-20 93 views
0

我有一個頁面控制器,裏面有三個頁面或視圖控制器。在我調用切換頁面的方法(病態下面)並嘗試滑動到另一個頁面之後,動畫運行起來非常緩慢且波濤洶涌。大多數情況下,視圖也會與視圖控制器不適合屏幕的框架混淆。我認爲,實際上不是切換頁面而是再次創建一個新的實例,但我似乎無法弄清楚它爲什麼會這麼慢,因爲在我的普通代碼中,我根據需要實例化每個視圖,並且它不會慢當我滑動切換視圖時向下。非常不連貫,在UIPageViewController中實例化一個頁面後頁面變慢

(它也需要5秒左右滑動到下一個視圖)

而且當我改變看法,我重新排序「viewControllerBeforeViewController」法在我的頁面視圖控制器,這樣的意見的順序保持不變當我滑動。

更新:我在我的一個視圖中設置了一個攝像頭。我相信這是造成緩慢,因爲當我跳過加載視圖一切都很好。不過,我需要加載鑑於我的應用程序:/

這裏是我的代碼:

- (void)handleButtonTap:(NSNotification *)notification 
{ 

changeOrder=1; 
[self setViewControllers:@[[self.storyboard instantiateViewControllerWithIdentifier:@"one"] ] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil]; 


} 

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController 
{ 
if ([viewController isKindOfClass:[NavView2ViewController class]]) 
    return nil; 
if(changeOrder ==1) 
{ 
    if ([viewController isKindOfClass:[NavView2ViewController class]]) 
    { 
     return nil; 
    } 
    if ([viewController isKindOfClass:[MainStoryViewController class]]) 
    { 
     return [self.storyboard instantiateViewControllerWithIdentifier:@"Profile"]; 
    } 
    return [self.storyboard instantiateViewControllerWithIdentifier:@"Main"]; 
} 
return [self.storyboard instantiateViewControllerWithIdentifier:@"Profile"]; 

} 

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController 
{ 


if ([viewController isKindOfClass:[NavViewController class]]) 
    return nil; 
if(changeOrder==1) 
{ 

    if ([viewController isKindOfClass:[MainStoryViewController class]]) 
    { 
     return [self.storyboard instantiateViewControllerWithIdentifier:@"one"]; 
    } 
    return [self.storyboard instantiateViewControllerWithIdentifier:@"Profile"]; 

} 
return [self.storyboard instantiateViewControllerWithIdentifier:@"one"]; 

} 

回答