viewControllerBeforeViewController
viewControllerAfterViewController
메서드 중 하나가 nil을 반환하면 카운터 부분도 호출됩니다.UIPageViewControllerDatasource는 왼쪽 스 와이프 및 오른쪽 스 와이프 메서드를 모두 호출합니다.
이 동작이 필요한 동작입니까? 어떤 식 으로든이 일을 막을 수 있습니다. 이것이 내가하려고하는 것입니다. viewControllerAfterViewController
이 viewControllerBeforeViewController
후 알림 [viewController showToasterWithText:@"Please answer the question to continue"];
을 호출되는 경우
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
if ([viewController isKindOfClass:[QuestionViewController class]]){
QuestionViewController* qvc = (QuestionViewController*)viewController;
CVPQuestion* prevQuestion = [_surveyContext previousQuestion:qvc.question];
return [self questionControllerWithQuestion:prevQuestion];
}
if ([viewController isKindOfClass:[SurveyEndedViewController class]]){
return [self questionControllerWithQuestion:[self.questionList lastObject]];
}
return nil;
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(QuestionViewController *)viewController {
if ([viewController respondsToSelector:@selector(question)]){
CVPQuestion* nextQuestion = [_surveyContext previousQuestion:viewController.question];
if (nextQuestion == nil && ![_surveyContext isAnswered:viewController.question]){
[viewController showToasterWithText:@"Please answer the question to continue"];
}
QuestionViewController* qc = [self questionControllerWithQuestion:[_surveyContext nextQuestion:viewController.question]];
if (!qc){return [self surveyEndedController:viewController.question];}
return qc;
}
return nil;
}
너무 전송됩니다.