2015-05-06 2 views
-2

У меня есть метод в классе класса просмотра страниц, который предназначен для создания набора чисел один раз, но вместо этого он почему-то срабатывает дважды по какой-то причине? Может ли кто-нибудь сказать мне, почему его стрельба дважды?Почему мой метод дважды вызывает вызов?

Это то, что консольные пожары

s18.postimg.org/f4de63swp/Screen_Shot_2015_05_06_at_1_42_03_pm.png

Что происходит, почему разве это работает, как надо?

Я хочу, чтобы мои контроллеры просмотра страниц зацикливались, когда пользователь прокручивает вперед, в то время как у меня есть пять разных чисел, которые постоянно поднимаются в одно и то же время, но не зацикливаются, они просто бесконечно увеличиваются.

Размах задом метод

-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController 
    viewControllerBeforeViewController:(UIViewController *)viewController 
{ 
    NSUInteger currentIndex = [myViewControllers indexOfObject:viewController]; 


    swipeTotal = swipeTotal - 1; 



    if (swipeTotal > 4) { 
     firstFive = true; 
     // NSLog(@"First Five Passed"); 
    }else{ 
     firstFive = false; 
     // NSLog(@"First Five False"); 
    } 

    // NSLog(@"Swipe Total is %d",swipeTotal); 

    if (currentIndex == 0) { 
     swipeContent1 = swipeTotal; 
     swipeContent2 = swipeTotal + 1; 
     swipeContent3 = swipeTotal + 2; 
     swipeContent4 = swipeTotal - 2; 
     swipeContent5 = swipeTotal - 1; 
    } 
    if (currentIndex == 1) { 
     swipeContent1 = swipeTotal - 1; 
     swipeContent2 = swipeTotal; 
     swipeContent3 = swipeTotal + 1; 
     swipeContent4 = swipeTotal + 2; 
     swipeContent5 = swipeTotal - 2; 
    } 
    if (currentIndex == 2) { 
     swipeContent1 = swipeTotal - 2; 
     swipeContent2 = swipeTotal - 1; 
     swipeContent3 = swipeTotal; 
     swipeContent4 = swipeTotal + 1; 
     swipeContent5 = swipeTotal + 2; 
    } 
    if (currentIndex == 3) { 
     swipeContent1 = swipeTotal + 2; 
     swipeContent2 = swipeTotal - 2; 
     swipeContent3 = swipeTotal - 1; 
     swipeContent4 = swipeTotal; 
     swipeContent5 = swipeTotal + 1; 
    } 
    if (currentIndex == 4) { 
     swipeContent1 = swipeTotal + 1; 
     swipeContent2 = swipeTotal + 2; 
     swipeContent3 = swipeTotal - 2; 
     swipeContent4 = swipeTotal - 1; 
     swipeContent5 = swipeTotal; 
    } 

    if (firstFive == true) { 


    if (currentIndex == 0) { 
     currentIndex = 4; 

    }else{ 
     --currentIndex; 
     currentIndex = currentIndex % (myViewControllers.count); 
    } 

    }else{ 
     if (currentIndex > 0) 
     { 
      return [myViewControllers objectAtIndex:currentIndex-1]; 
      // return the previous viewcontroller 
     } else 
     { 
      return nil; 
      // do nothing 
     } 

    } 


    /* 
     content1 = [users objectAtIndex:swipeContent1]; 
     content2 = [users objectAtIndex:swipeContent2]; 
     content3 = [users objectAtIndex:swipeContent3]; 
     content4 = [users objectAtIndex:swipeContent4]; 
     content5 = [users objectAtIndex:swipeContent5]; */ 

    NSLog(@"Content 1 = %d",swipeContent1); 
    NSLog(@"Content 2 = %d",swipeContent2); 
    NSLog(@"Content 3 = %d",swipeContent3); 
    NSLog(@"Content 4 = %d",swipeContent4); 
    NSLog(@"Content 5 = %d",swipeContent5); 




    return [myViewControllers objectAtIndex:currentIndex]; 
} 

Размах вперед метод

-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController 
     viewControllerAfterViewController:(UIViewController *)viewController 
{ 
    NSUInteger currentIndex = [myViewControllers indexOfObject:viewController]; 


    if (swipeTotal > 4) { 
     firstFive = true; 

     //  NSLog(@"First Five Passed"); 
    }else{ 
     firstFive = false; 
     //  NSLog(@"First Five False"); 
    } 

    // NSLog(@"Swipe Total is %d",swipeTotal); 

    ++currentIndex; 
    currentIndex = currentIndex % (myViewControllers.count); 

    swipeTotal = swipeTotal + 1; 

    if (currentIndex == 0) { 
     swipeContent1 = swipeTotal; 
     swipeContent2 = swipeTotal + 1; 
     swipeContent3 = swipeTotal + 2; 
     swipeContent4 = swipeTotal - 2; 
     swipeContent5 = swipeTotal - 1; 
    } else if (currentIndex == 1) { 
     swipeContent1 = swipeTotal - 1; 
     swipeContent2 = swipeTotal; 
     swipeContent3 = swipeTotal + 1; 
     swipeContent4 = swipeTotal + 2; 
     swipeContent5 = swipeTotal - 2; 
    } else if (currentIndex == 2) { 
     swipeContent1 = swipeTotal - 2; 
     swipeContent2 = swipeTotal - 1; 
     swipeContent3 = swipeTotal; 
     swipeContent4 = swipeTotal + 1; 
     swipeContent5 = swipeTotal + 2; 
    } else if (currentIndex == 3) { 
     swipeContent1 = swipeTotal + 2; 
     swipeContent2 = swipeTotal - 2; 
     swipeContent3 = swipeTotal - 1; 
     swipeContent4 = swipeTotal; 
     swipeContent5 = swipeTotal + 1; 
    } else if (currentIndex == 4) { 
     swipeContent1 = swipeTotal + 1; 
     swipeContent2 = swipeTotal + 2; 
     swipeContent3 = swipeTotal - 2; 
     swipeContent4 = swipeTotal - 1; 
     swipeContent5 = swipeTotal; 
    } 

    NSLog(@"Content 1 = %d",swipeContent1); 
    NSLog(@"Content 2 = %d",swipeContent2); 
    NSLog(@"Content 3 = %d",swipeContent3); 
    NSLog(@"Content 4 = %d",swipeContent4); 
    NSLog(@"Content 5 = %d",swipeContent5); 


    return [myViewControllers objectAtIndex:currentIndex]; 
} 
+0

Добавить точку останова для двух методов и посмотреть, что их вызывает. – rmaddy

ответ

0

Я думаю, что ваш UIPageViewController потребность 3 контроллера (в целом), чтобы иметь возможность правильно отображать ее содержание:

  1. главный видимый контроллер
  2. предыдущего
  3. следующего

для этого предыдущего и следующего, чтобы быть частично видно, когда ваш свиток частично контроллер.

Так что ваши 2 метода не называются каждый для направления движения, но вызывается каждый раз, когда вы прокручиваете свой контроллер. И поэтому ваш контент для салфетки оценивается дважды.

Смежные вопросы