我是第一次使用UIPageViewController,
我想使应用程序,向左和向右滑动相同的看法。我只使用了一个uitableview来无限滑动uipageviewcontroller。

使用滚动效果可以很好地工作,但是当我使用页面卷曲效果时,它只允许向右滑动,不能转到上一页。
以下是我的PageViewController文件代码:
- (void)viewDidLoad {
[super viewDidLoad];
self.dataSource = self;
self.delegate = self;
[self didMoveToParentViewController:self];
_counter = 0;
[self setViewControllers:@[[self.storyboard instantiateViewControllerWithIdentifier:@"memoTable"]] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
// Do any additional setup after loading the view.
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
#pragma mark PageViewController delegate method
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
NSLog(@"Child controller counter before = %d", _counter);
if ([viewController isKindOfClass:[PageController class]])
return nil;
if(_counter < 1) {
return nil;
}
self.view.backgroundColor = [UIColor lightGrayColor];
return [self.storyboard instantiateViewControllerWithIdentifier:@"memoTable"];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
NSLog(@"Child controller counter after = %d", _counter);
if ([viewController isKindOfClass:[PageController class]])
return nil;
return [self.storyboard instantiateViewControllerWithIdentifier:@"pageView"];
}那么如何使用页面卷曲效果和左右滑动来实现这一点呢?
谢谢。
发布于 2016-10-24 21:45:49
因为你需要的是单边无穷大,你需要检查你的index,如果它是0而不是return nil。
PageViewController**:**的一些检查方法
// Create the data model.
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
_pageData = [[dateFormatter monthSymbols] copy];
- (DataViewController *)viewControllerAtIndex:(NSUInteger)index storyboard:(UIStoryboard *)storyboard {
// Return the data view controller for the given index.
if (([self.pageData count] == 0) || (index >= [self.pageData count])) {
return nil;
}
// Create a new view controller and pass suitable data.
DataViewController *dataViewController = [storyboard instantiateViewControllerWithIdentifier:@"DataViewController"];
dataViewController.dataObject = self.pageData[index];
return dataViewController;
}
- (NSUInteger)indexOfViewController:(DataViewController *)viewController {
// Return the index of the given data view controller.
// For simplicity, this implementation uses a static array of model objects and the view controller stores the model object; you can therefore use the model object to identify the index.
return [self.pageData indexOfObject:viewController.dataObject];
}
#pragma mark - Page View Controller Data Source
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
NSUInteger index = [self indexOfViewController:(DataViewController *)viewController];
if ((index == 0) || (index == NSNotFound)) {
return nil;
}
index--;
return [self viewControllerAtIndex:index storyboard:viewController.storyboard];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
NSUInteger index = [self indexOfViewController:(DataViewController *)viewController];
if (index == NSNotFound) {
return nil;
}
index++;
if (index == [self.pageData count]) {
return nil;
}
return [self viewControllerAtIndex:index storyboard:viewController.storyboard];
}你必须管理一个数组,才能识别index | count中的每一件事。
在上面的例子中,self.pageData是我用来管理页面的数组。如果你需要任何帮助,请告诉我。
https://stackoverflow.com/questions/40219112
复制相似问题