您是否曾经想要实现一个简单的 UIPageViewController
并发现您必须自己编写全部代码?使用 MSPageViewController
,您将从单个Storyboard中设计每一页!
首先,您必须创建一个 MSPageViewController 的子类 并重写 -pageIdentifiers
。示例
- (NSArray *)pageIdentifiers {
return @[@"page1", @"page2"];
}
然后,您必须创建一个Storyboard,添加一个 UIPageViewController
对象并将其类更改为 MSPageViewController
。然后,您可以添加控制器,将它们的 Storyboard ID
设置为在 pageIdentifiers
中返回的内容。每一个都必须符合 MSPageViewControllerChild
的类(如果您不需要添加任何额外功能,您可以使用 MSPageViewControllerPage
)。
当您的控制器被实例化时,它将使用这些控制器来创建每一页。
请确保也查看此仓库中的示例项目。
如果您需要您的所有页面看起来都一样,但提供不同的数据,您可以在Storyboard中创建单个页面,并返回它所需的次数
- (NSArray *)pageIdentifiers {
return @[@"page1", @"page1", @"page1"];
}
然后,在您的 MSPageViewController 子类中,您可以重写此方法来配置每一页
- (void)setUpViewController:(MyCustomControllerPage *)page
atIndex:(NSInteger)index {
[super setUpViewController:page atIndex:index];
page.customData = [self dataForPageAtIndex:index];
}
只需将此行添加到您的 Podfile
pod 'MSPageViewController', '~> 1.0.0'
只需将 Source 下的文件添加到您的项目中。
-fobjc-arc
。MSPageViewController
在 WTFPL 许可下可用。有关更多信息,请参阅 LICENSE 文件。