Использую этот код чтобы переворачивать страницу. всего 15 страниц
-(IBAction) next:(id)sender {
NSUInteger page1 = 1;
NSUInteger page2 = 4;
DataViewController *firstViewController = [self.modelController viewControllerAtIndex:page1 storyboard:self.storyboard];
DataViewController *secondViewController = [self.modelController viewControllerAtIndex:page2 storyboard:self.storyboard];
NSArray *viewControllers = nil;
viewControllers = [NSArray arrayWithObjects:firstViewController, secondViewController, nil];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];
}
Проблема в том что я могу выбрать только 2 страницы ( из 15 могу переворачивать 1 и 4)
NSUInteger page1 = 1;
NSUInteger page2 = 4;
Как мне переворачивать все страницы от 1 - 15?
UPD
Ваш код работает. Но когда страницы заканчиваются приложение вылетает. Я использую этот код в RootViewController т.к. кнопку с действием могу создать только в нем, а массив с данными находится в ModelController где я не могу создать кнопку с действием. Как мне остановить перелистывание, когда страницы заканчиваются?
- (void)nextPage:(id)sender {
DataViewController *ViewController1 = self.pageViewController.viewControllers[0];
DataViewController *ViewController2 = self.pageViewController.viewControllers[1];
NSUInteger ViewControllerIndex1 = [self.modelController indexOfViewController:ViewController1] + 2;
NSUInteger ViewControllerIndex2 = [self.modelController indexOfViewController:ViewController2] + 2;
DataViewController *firstViewController1 = [self.modelController viewControllerAtIndex:ViewControllerIndex1 storyboard:self.storyboard];
DataViewController *secondViewController1 = [self.modelController viewControllerAtIndex:ViewControllerIndex1 storyboard:self.storyboard];
NSArray *viewControllers = nil;
viewControllers = [NSArray arrayWithObjects:firstViewController1, secondViewController1, nil];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];
}
Ответ
В методе next необходимо реализовать логику перелистывания для двух страниц. Т.е есть массив элементов, определяющих количество страниц в ModelController его можно вынести в хедер класса для видимости. И в RootViewController можно им пользоваться.
А в классе RootViewController написать условие, чтобы не выходить за пределы массива, когда переписываются страницы.
Для автоматического перелистывания нужно создать таймер в классе RootViewController, например в методе viewDidLoad
NSTimer *timer = [NSTimer timerWithTimeInterval:5
target:self
selector:@selector(nextPage:)
userInfo:nil
repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
Комментариев нет:
Отправить комментарий