2017-01-18 3 views
0

Первоначально я думал, что это довольно простая вещь, но похоже, что это не так. Мне нужно сделать простой запрос GET на моем сервере всякий раз, когда переполнение страницы происходит в моем UIPageViewController. Я попытался положить метод, чтобы сделать вызов сервера методов, как:Вызвать вызов метода после каждого перетаскивания страницы UIPageViewController

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController 

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController 

- (PageContentViewController *)viewControllerAtIndex:(NSUInteger)index 

Но ни один из этих методов не дозвонились последовательно после каждой страницы флип, как UIPageViewController пытается поддерживать кэш viewcontrollers я предполагаю. Есть ли способ обхода проблемы?

ответ

4

Вы должны реализовать метод UIPageViewControllerDelegate

- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed 
{ 
    if (finished) { 
     // in case you are sure that you shows only YourViewController 
     YourViewController *vc = (YourViewController *)pageViewController.viewControllers.lastObject; 
     // decide what is the index of the controller based on your own logic and do what you want with it 
    } 
} 

Надеется, что это помогает!

+1

Да, и, конечно же, обязательно установите делегат как объект, который реализует этот метод. – danh

+0

В любом случае, я могу использовать индекс страницы, переворачиваемый или перевернутый в указанном выше методе? –

+0

Добавлено описание как получить индекс UIViewController, который был показан – Sander

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