0
我一直努力让一个UIPageViewController到了相当一段时间的工作,而缺乏的结果是开始我发疯...不能得到UIPageViewController工作
下面的代码部分的教程(其中我也没有去工作)并且离我而去。现在我试图让每个viewControllers查看一个标签,以便在添加内容之前确保它可以正常工作。
- (void)viewDidLoad
{
[super viewDidLoad];
vcArray = [self createViewControllers:1];
NSLog(@"TEST1");
self.pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
self.pageController.delegate = self;
self.pageController.dataSource = self;
NSLog(@"TEST2 %@", vcArray);
[self.pageController setViewControllers:vcArray direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
[[pageController view] setFrame:[[self view] bounds]];
NSLog(@"TEST3");
[self addChildViewController:self.pageController];
[[self view] addSubview:[self.pageController view]];
[pageController didMoveToParentViewController:self];
NSLog(@"TEST4");
}
- (NSArray *) createViewControllers:(NSInteger)ammount{
NSMutableArray *array = [NSMutableArray new];
for (NSInteger i = 0; i <= ammount; i++) {
PageContentViewController *pageContentViewController = [PageContentViewController new];
UILabel *label = [UILabel new];
label.text = @"STRING";
pageContentViewController.view = label;
[array addObject:pageContentViewController];
}
return array;
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
NSUInteger index = [self indexOfViewController:
(PageContentViewController *)viewController];
if ((index == 0) || (index == NSNotFound)) {
return nil;
}
index--;
return [vcArray objectAtIndex:index];
}
- (UIViewController *)pageViewController:
(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
NSUInteger index = [self indexOfViewController:
(PageContentViewController *)viewController];
if (index == NSNotFound) {
return nil;
}
index++;
if (index == [vcArray count]) {
return nil;
}
return [vcArray objectAtIndex:index];
}
- (NSUInteger)indexOfViewController:(PageContentViewController *)viewController
{
return [vcArray indexOfObject:viewController.dataObject];
}
你能看到我失踪了吗? 我已经经历了太多的教程和计算器问题,这给我留下了只有更糊涂了......
由于提前, 汤姆
所以代码看起来一般?我做你所说的话并回报! – Tom
它大多看起来不错。你正在做其他方法调用应该为你做的很多事情(例如,只需要TEST3和TEST4之间的中间线)。 'setViewControllers:...'不会设置所有应该可以浏览的视图控制器,只是可见的视图控制器。您最终需要提供数据源,并且由于您已将'self'设置为您的数据源,因此您应该从数据源方法返回敏感值。 – Jesper
我似乎还需要了解一些东西。我不知道数据源是什么......立即查找它!如果你能用几句话给出一个简短的解释,那将非常棒!你可以看到可浏览的浏览器是什么意思?他们是否有看法? – Tom