2013-04-13 2 views
0

UIPageViewController를 사용하여 마지막 페이지가 활성 레코드이고 이전 페이지가 편집 할 수없는 이전 레코드 인 경우 데이터 입력을 처리합니다. 따라서 사용자가 마지막 페이지를 떠나지 않고 다른 페이지를 모두 평소와 같이 탐색 할 수 있는지 확인하는 방법이 필요합니다.UIPageViewController - 페이지 확인 경고와 함께 설정

이상하게도 실제로는 - (BOOL) pageShouldTurn 메서드를 사용할 수 있지만 존재하지 않습니다.

누군가가 페이지를 언로드하려고 할 때 어떤 상황을 기반으로 페이지 턴을 중지 할 것인지를 감지하는 방법을 알고 있습니까? 대리자가 설정되어 있어도 트리거되지 않는 것 같아 제스처 인식기 메서드에 어떤 행운이 없습니다.

-(void)pageViewController:(UIPageViewController *)pvc willTransitionToViewControllers:(NSArray *)pendingViewControllers 
{ 
    if ([pvc.viewControllers.lastObject pageIndex] == [self.pageDataSource.allObjects count]) { 
     UIAlertView *alertDialog; 
     alertDialog = [[UIAlertView alloc] 
         initWithTitle:@"Are You Done?" 
         message:@"Once you leave this page you can't edit this record again" 
         delegate:self 
         cancelButtonTitle:@"OK" 
         otherButtonTitles: nil]; 
     [alertDialog show]; 
    } 
} 

그래서 경고 상자가 한 번만 회전에서 페이지를 중지 : 마이클

덕분에, 나는 내가 필요로 않습니다 정확히 내 pageViewController이 추가되었습니다. 해산되면 사용자는 페이지를 변경할 수 있습니다. 내 버전은 이것이 마지막 페이지에서만 발생하는지 확인하기 위해 'if'문을 제거하고 모든 페이지 전환시 경고 할 수 있지만 성가시다.

답변

0

적어도 두 가지 옵션이 있습니다.

숫자 1, 당신은 "- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers"입니다. 거기에서 전환을 잡아서 이전 페이지가 재설정되도록 강제 할 수 있습니다.

또는, 당신은 지금 "UIPageViewController를"하위 클래스와 서브 클래스 컨트롤러, 당신은 (모든 원본 UIPageViewControllerDelegate 통합하는 새로운 위임 프로토콜을 정의 할 수 있습니다 "방법을) 당신이 당신의 자신의 추가 할 수 있습니다"-(BOOL) pageShouldTurn "프로토콜 방법을.

이 두 가지 방법 모두 iOS 6이 필요합니다.

+0

감사합니다. Michael은 모두 좋은 옵션처럼 보입니다. 함께 놀고 다시 보겠습니다. (iOS 6을 사용 중이므로 문제가 없습니다) – Chris

+0

willTransitionToViewControllers 메서드에 대해서는 알지 못했습니다. 그런 점에 대해 감사드립니다! 그렇다면 너무 힘들지 않은 현재 페이지를 식별해야했습니다. 위의 방법을 사용하여 다른 사람을 도울 수 있습니다. 다시 한 번 감사드립니다! – Chris

관련 문제