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