2013-07-18 2 views
0

문제를 완료 가진 당신이 그 때, 1부터 현재 페이지 번호를 업데이트 시작을 통해 3 ~ 4 페이지를 넘길 후 현재 페이지 번호 업데이트를 시작한다는 것입니다 2, 3, 4, ... .. 뭐가 잘못 됐어. 역순으로 시작하면 페이지를 넘겨서 12에서 가정하고 13을 표시 한 다음 다음 페이지에서 현재 페이지 번호를 역순으로 업데이트하기 시작합니다.업데이트 현재 페이지 번호가

- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed{ 


if (!completed) { 

    return; 
} 
    if (currentIndex<totalPages -1){ 

    [self displaycurrentIndex:currentIndex + 1]; 

    }else if (currentIndex>totalPages + 1){ 

      [self displaycurrentIndex:currentIndex - 1]; 
    } 
} 

- (void) displaycurrentIndex:(NSUInteger)currentIndex { 

self.navigationItem.title = [NSString stringWithFormat: 
          @"Page %i of %i", 
          currentIndex + 1, 
          CGPDFDocumentGetNumberOfPages(PDFDocument)]; 
} 

역순으로가는 경우에도 처음부터이 업데이트 현재 페이지 번호를 수정하고하는 방법에 도와주세요.

편집 : 켤 때

지금은 지금 이상 첫 페이지를 켠 후 업데이트되지만

if (!completed) { 

return; 
} 

를 제거한 후 여전히 현재 페이지 (20)의 0에서 숫자 20의 다음 1 등 만을 업데이트 역순으로 페이지를 넘기면 앞으로의 현재 페이지 번호가 계속해서 역순으로 업데이트됩니다.

도움 주셔서 감사합니다.

답변

0

UIPageViewController에서 페이지 번호를 관리하는 가장 좋은 방법은 속성으로 페이지 번호 정보를 페이지보기에 직접 저장하는 것입니다 (이전 WWDC 세션 비디오에서 확인한 바 있습니다). 컨트롤러 (표시하려는 단일 페이지가 포함 된보기 컨트롤러에 있음).

페이지 번호가있는 범용 상태 표시 줄을 표시하려면 UIPageViewController 설정에 따라 하나 또는 두 개의보기 컨트롤러를 반환하는 UIPageViewController의 viewControllers 속성을 가져옵니다. 의사 코드에 따라서

페이지 뷰 컨트롤러 코드를 표시하는 새로운 뷰 컨트롤러이다 데이터 소스 요청할 때 : - 현재 뷰 컨트롤러 (들)을 얻을 것이다 - 그것을 (그들)에서 가져 오는 것 페이지 번호 - 다음 또는 이전 페이지 번호를 계산합니다은 (페이지 컬/슬쩍 방향에 따라 다름) - 새로운 계산 된 페이지 번호보기 컨트롤러의 데이터 소스에 요청하고 자신의 페이지 번호 속성에 할당됩니다 이러한 방법으로 새로운 가치

당신은 이상한 애니메이션 행위로부터 보호하고 메모리에 당신이 경험으로, 문제가 발생할 수있는 글로벌 "currentIndex"을 유지 할 필요가 없습니다.

관련 문제