У меня есть viewController
, который имеет containerView
с pageView
. Как только я сползаю представление из pageView, я хочу вызвать функцию в viewController, я попытался с моим кодом ниже, но он вызывает buttonMaskColor
, пожалуйста, где моя проблема?Делегация Swift Protocol не работает
class PlaceMenuDetailsViewController: UIViewController, PageViewSliderDelegate {
override func viewDidLoad() {
super.viewDidLoad()
detailsButton.pageDelegation = self
}
func buttonMaskColor(){
println("delegate work")
}
}
class DetailPageViewController: UIPageViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource {
weak var pageDelegation:PageViewSliderDelegate?
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
pageDelegation?.buttonMaskColor()
var page = (viewController as! PageDelegate).pageNumber + 1
return viewControllerForPage(page)
}
"но он звонит buttonMaskColor" или не звонит? –
Нет, это не называется. @Ramshad –
Я думаю, что делегат просмотра страницы DetailPageViewController равен нулю. Попробуйте добавить делегат = self в viewDidLoad из DetailPageViewController –