Я пытаюсь реализовать UIPageViewController
с проверкой на каждом шаге. Мой код работал нормально без проверки, поэтому все со страницами, похоже, сделано правильно. Это мой код:UIPageViewController viewControllerAfterViewController не вызывается после того, как однажды возвращено nil
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
int index = [(MyViewController *) viewController index];
index--;
return [_viewModel viewControllerAtIndex:index];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
BOOL isDataValid = [(MyViewController *) viewController validateData];
if (isDataValid) {
int index = [(MyViewController *) viewController index];
index++;
return [_viewModel viewControllerAtIndex:index];
}
return nil;
}
Моя проблема заключается в том, что, когда шаг 1 показано, viewControllerAfterViewController
называется подготовить шаг 2, но потому, что шаг 2 не может быть действительным (пользователь не имеет возможности для ввода данных), поэтому его возвращает нуль. Я хотел бы, чтобы UIPageViewController
звонил viewControllerAfterViewController
каждый раз, когда пользователь пытается пронестись к следующему экрану и не сдаваться после получения нулевого значения. Это выполнимо?
работал! Нелегко заметить, что просмотр содержимого контроллера детского просмотра стал действительным, но теперь он работает! – KlimczakM
Куда назвать этот метод @Lou Franco –