Mam UIPageViewController, który pokazuje różne strony. Obecne zachowanie polega na tym, że przestaje się przewijać po dotarciu do ostatniej strony. Teraz chciałbym osiągnąć to, że na ostatniej stronie i przewijaniu w prawo przechodzi na pierwszą stronę. Kiedy na pierwszej stronie, przejdź do ostatniej strony, przewijając w lewo. Zasadniczo pozwól stronie PageViewController pokazać strony w kółkach. Moje pierwsze podejście działa całkiem dobrze, mając jednocześnie więcej niż jedną stronę, albo wychodząc z jednej strony:Jak dokonać uipageviewcontroller przejdź w kółka
- (UIViewController*) pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(TMCollectionViewController *)viewController
{
if((viewController.pageIndex) >= 1)
{
return _viewControllers[viewController.pageIndex - 1];
}
else
{
if ([_viewControllers count] == 1) {
return nil;
}
return [_viewControllers objectAtIndex:[_viewControllers count]-1];
}
}
Ale kiedy usunąć strony, tak że pozostaje tylko jedna, to nadal pamięta albo się przed lub po stronie, i pokazuje to odpowiednio. Mimo że w tablicy pozostaje tylko jedna strona. Każda pomoc jest wysoko ceniona.
Witam i dziękuję za szybką odpowiedź. Próbowałem twojego kodu, ale pokazuje podobne zachowanie jak moje własne podejście. Działa dobrze, gdy ma wiele stron. W mojej aplikacji każda strona reprezentuje źródło wiadomości, które można dodać lub usunąć. Więc jeśli użytkownik ma np. pięć źródeł, kod działa dobrze. Teraz, gdy użytkownik usunie cztery z pięciu, a zatem pozostało tylko jedno w PageViewController, nadal można przewijać w lewo i w prawo, ale widzi białe strony z irytującymi efektami krzykliwymi. –
Twój licznik w 'presentationCountForPageViewController' może nie być aktualizowany, więc dostajesz 5 stron, chociaż ma tylko 1 i otrzymujesz 4 strony białe – Heena
Strony, które przedstawiam, znajdują się w tablicy _viewControllers. Po usunięciu przez użytkownika czterech z pięciu stron, tablica _viewControllers składa się tylko z jednego kontrolera ViewController. "presentationCountForPageViewController" odpowiada za pomocą [_viewControllers count]. Ale jakoś nie pomaga. –