@@ -5,7 +5,7 @@ import UIKit
55 func pageViewController( pageViewController: UIPageViewController , setViewController viewController: UIViewController , atPage page: Int )
66}
77
8- @objc ( HYPPagesController) public class PagesController : UIPageViewController , UIPageViewControllerDelegate , UIPageViewControllerDataSource {
8+ @objc ( HYPPagesController) public class PagesController : UIPageViewController {
99
1010 struct Dimensions {
1111 static let bottomLineHeight : CGFloat = 1.0
@@ -38,7 +38,7 @@ import UIKit
3838
3939 public var pagesDelegate : PagesControllerDelegate ?
4040
41- public private( set) var bottomLineView : UIView = {
41+ public private( set) lazy var bottomLineView : UIView = {
4242 let view = UIView ( )
4343 view. setTranslatesAutoresizingMaskIntoConstraints ( false )
4444 view. backgroundColor = . whiteColor( )
@@ -47,6 +47,8 @@ import UIKit
4747 return view
4848 } ( )
4949
50+ public private( set) var pageControl : UIPageControl ?
51+
5052 public convenience init ( _ pages: [ UIViewController ] ,
5153 transitionStyle: UIPageViewControllerTransitionStyle = . Scroll,
5254 navigationOrientation: UIPageViewControllerNavigationOrientation = . Horizontal,
@@ -69,6 +71,16 @@ import UIKit
6971 view. bringSubviewToFront ( bottomLineView)
7072 goTo ( startPage)
7173 }
74+
75+ public override func viewDidAppear( animated: Bool ) {
76+ super. viewDidAppear ( animated)
77+
78+ for subview in view. subviews {
79+ if subview is UIPageControl {
80+ pageControl = subview as? UIPageControl
81+ }
82+ }
83+ }
7284}
7385
7486// MARK: Public methods
@@ -110,7 +122,7 @@ extension PagesController {
110122
111123// MARK: UIPageViewControllerDataSource
112124
113- extension PagesController {
125+ extension PagesController : UIPageViewControllerDataSource {
114126
115127 public func pageViewController( pageViewController: UIPageViewController , viewControllerBeforeViewController viewController: UIViewController ) -> UIViewController ? {
116128 let index = prevIndex ( viewControllerIndex ( viewController) )
@@ -129,29 +141,29 @@ extension PagesController {
129141 public func presentationIndexForPageViewController( pageViewController: UIPageViewController ) -> Int {
130142 return currentIndex
131143 }
132-
133144}
134145
135146// MARK: UIPageViewControllerDelegate
136147
137- extension PagesController {
138-
139- public func pageViewController( pageViewController: UIPageViewController , willTransitionToViewControllers pendingViewControllers: [ AnyObject ] ) {
140-
141- if let viewController = pendingViewControllers. first as? UIViewController ,
142- index = viewControllerIndex ( viewController) {
143- currentIndex = index
144-
145- if setNavigationTitle {
146- title = viewController. title
147- }
148- }
149- }
148+ extension PagesController : UIPageViewControllerDelegate {
150149
151150 public func pageViewController( pageViewController: UIPageViewController , didFinishAnimating finished: Bool ,
152151 previousViewControllers: [ AnyObject ] , transitionCompleted completed: Bool ) {
153152 if completed {
154- pagesDelegate? . pageViewController ( self , setViewController: pages [ currentIndex] , atPage: currentIndex)
153+ if let viewController = pageViewController. viewControllers. last as? UIViewController ,
154+ index = viewControllerIndex ( viewController) {
155+ currentIndex = index
156+
157+ if setNavigationTitle {
158+ title = viewController. title
159+ }
160+
161+ if let pageControl = pageControl {
162+ pageControl. currentPage = currentIndex
163+ }
164+
165+ pagesDelegate? . pageViewController ( self , setViewController: pages [ currentIndex] , atPage: currentIndex)
166+ }
155167 }
156168 }
157169}
@@ -216,7 +228,6 @@ extension Array {
216228 return nil
217229 }
218230 }
219-
220231}
221232
222233func nextIndex( x: Int? ) - > Int? {
0 commit comments