3 回答
TA贡献1874条经验 获得超12个赞
是的,可以使用以下方法:
- (void)setViewControllers:(NSArray *)viewControllers
direction:(UIPageViewControllerNavigationDirection)direction
animated:(BOOL)animated
completion:(void (^)(BOOL finished))completion;`
这与在页面上设置第一个视图控制器的方法相同。类似,您可以使用它来转到其他页面。
不知道为什么viewControllers是数组,而不是单个视图控制器?
那是因为页面视图控制器可以有一个“书脊”(就像在iBooks中一样),一次显示2页内容。如果一次显示1页内容,则只传入1元素数组。
Swift中的一个例子:
pageContainer.setViewControllers([displayThisViewController], direction: .Forward, animated: true, completion: nil)
TA贡献1810条经验 获得超4个赞
这是单个分页视图的另一个代码示例。这里省略了viewControllerAtIndex的实现,它应该返回给定索引的正确视图控制器。
- (void)changePage:(UIPageViewControllerNavigationDirection)direction {
NSUInteger pageIndex = ((FooViewController *) [_pageViewController.viewControllers objectAtIndex:0]).pageIndex;
if (direction == UIPageViewControllerNavigationDirectionForward) {
pageIndex++;
}
else {
pageIndex--;
}
FooViewController *viewController = [self viewControllerAtIndex:pageIndex];
if (viewController == nil) {
return;
}
[_pageViewController setViewControllers:@[viewController]
direction:direction
animated:YES
completion:nil];
}
可以通过调用更改页面
[self changePage:UIPageViewControllerNavigationDirectionReverse];
[self changePage:UIPageViewControllerNavigationDirectionForward];
- 3 回答
- 0 关注
- 633 浏览
添加回答
举报