你是否曾希望实现一个简单的 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 文件 获取更多信息。