在导航控制器中嵌入三个 UITableView 的 UIPageViewController
Posted
技术标签:
【中文标题】在导航控制器中嵌入三个 UITableView 的 UIPageViewController【英文标题】:UIPageViewController with three UITableViews embedded in Navigation Controllers 【发布时间】:2015-05-22 01:14:32 【问题描述】:我创建了三个不同的UITableViewControllers
,它们最初嵌入在UITabBarController
中,但我决定改用pageControl
。我已经删除了选项卡栏,但我不知道如何以“编程方式”创建一个 pageView,最好使用已经创建的三个 tableview
我以前使用过 pageControl,但只是使用一个视图控制器进行简单的操作,并根据页面控件更改该视图的内容。
NSArray *viewControllers = [[NSArray alloc]initWithObjects:[self.storyboard instantiateInitialViewController], nil];
self.pageViewController = [[UIPageViewController alloc]initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
self.pageViewController.delegate = self;
self.pageViewController.dataSource = self;
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];
我也想过并尝试了一个简单的向右滑动手势作为转场,但由于某种原因它不起作用。任何帮助或建议表示赞赏。谢谢。
【问题讨论】:
【参考方案1】:你实现UIPageViewControllerDataSource
这两个必需的方法了吗?
直接来自docs: “要支持基于手势的导航,您必须使用数据源对象提供视图控制器。”
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerBeforeViewController:(UIViewController *)viewController
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerAfterViewController:(UIViewController *)viewController
【讨论】:
以上是关于在导航控制器中嵌入三个 UITableView 的 UIPageViewController的主要内容,如果未能解决你的问题,请参考以下文章
从 iOS 11 搜索控制器导航时不需要的 UITableView 重新加载动画