Вы можете использовать шаблон делегирования или NSNotification.
Делегация
Установите parentVC в качестве делегата pageVC и помнить, что parentVC должен соответствовать протоколу делегата странице Вид контроллера
class ParentClass: UIViewController, UIPageViewControllerDelegate {
// ...
pageInstanceVC.delegate = self
}
, а затем реализовать его метод делегата (это когда вы меняете кнопки он цвет), вы можете реализовать его в - pageViewController:willTransitionToViewControllers:
или - pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:
Полных документов можно найти here
Notifi Катион
Набор parentVC слушать уведомления об изменении страницы и осуществлять необходимый метод при получении уведомления
// Parent VC
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "changeButtonColor", name: "kPageChangeNotif", object: nil)
}
func changeButtonColor(notification: NSNotification) {
let userInfo = notification.userInfo as Dictionary
let pageNumber = userInfo["PageNumber"]
// Change the button color
// .....
}
Затем разослал уведомление, когда страница изменяется
// PageVC
NSNotificationCenter.defaultCenter().postNotificationName("kPageChangeNotif", object: nil, userInfo: ["PageNumber" : 2])
Не забудьте удалить parentVC из наблюдая за NSNotificationCenter's (removeObserver
), когда это необходимо
Отъезд делегатов в iOS/NSNotificationCentre – 7vikram7