带有标签的水平滚动 UIPageViewController。
支持 iOS 8 和 Swift
class ViewController: BabuPagerViewController, BabuPagerViewControllerDataSource, BabuPagerViewControllerDelegate {
var titles = ["red", "blue", "green", "yellow", "cyan"]
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
self.delegate = self
}
...
// MARK: - BabuPagerViewControllerDataSource
func numberOfPagerItem() -> Int {
return self.titles.count
}
func titleForTab(index: Int) -> String {
return self.titles[index]
}
func pagerItemViewController(index: Int) -> UIViewController {
var viewController = self.storyboard!.instantiateViewControllerWithIdentifier("pageItem") as! UIViewController
viewController.title = self.titles[index]
return viewController
}
// MARK: - BabuPagerViewControllerDelegate
func pagerViewController(pagerViewController: BabuPagerViewController, willTransitionToViewController: AnyObject) {
...
}
func pagerViewController(pagerViewController: BabuPagerViewController, didFinishAnimating finished: Bool) {
// You can get the current index.
let pageIndex = pagerViewController.currentIndex()
...
}
}
返回当前页面的索引
询问数据源返回页面视图中的项目数
func numberOfPagerItem() -> Int {
return self.titles.count
}
询问页面元素
func pagerItemViewController(index: Int) -> UIViewController {
var viewController = self.storyboard!.instantiateViewControllerWithIdentifier("pageItem") as! UIViewController
viewController.title = self.titles[index]
return viewController
}
询问数据源为标签标题
func titleForTab(index: Int) -> String {
return self.titles[index]
}
在开始手势控制的转换之前调用。
func pagerViewController(pagerViewController: BabuPagerViewController, willTransitionToViewController: AnyObject) {
println("called willTransitionToViewController")
}
在完成手势控制转换后调用。
func pagerViewController(pagerViewController: BabuPagerViewController, didFinishAnimating finished: Bool) {
println("called didFinishAnimating")
let pageIndex = pagerViewController.currentIndex()
...
}