gpt4 book ai didi

ios - Swift 协议(protocol)委托(delegate)不起作用

转载 作者:行者123 更新时间:2023-11-28 13:08:41 24 4
gpt4 key购买 nike

我有一个 viewController,它有一个带有 pageViewcontainerView。从 pageView 滑动 View 后,我想在 viewController 中调用一个函数 我已经尝试使用下面的代码,但它正在调用 buttonMaskColor 请问我的问题在哪里?

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)
}

最佳答案

在为嵌入转场提供标识符后,您应该在 mainView 的 prepareForSegue 函数中将 self 分配给 pageDelegation,如下所示:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if segue.identifier == "embedSegueIdentifier" {

let distinationVC = segue.destinationViewController as? DetailPageViewController

distinationVC?.pageDelegation = self

}

}

关于ios - Swift 协议(protocol)委托(delegate)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32009155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com