gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:00:14 25 4
gpt4 key购买 nike

我有 UIViewController(profileViewController),其中有 collectionViewcollectionViewheaderCell 其中有 segmentedControl,当 segmentedControl 值改变时,我想老虎 delegate 方法但它不起作用,在这里是代码,这是 collectioview headercell 和协议(protocol)的类。

import UIKit

// Protocol

protocol headerCellSegmentedDelegate {
func changeTabe(whichOne : String)
}

// HeaderCell Class

class HeaderProfileCollectionReusableView: UICollectionReusableView {
var headerDelegate : headerCellSegmentedDelegate?
@IBAction func changeValue(_ sender: UISegmentedControl) {
if sender.selectedSegmentIndex == 0 {
headerDelegate?.changeTabe(whichOne: "0")
}else{
headerDelegate?.changeTabe(whichOne: "1")
}
}
}

在具有 collectionView 的同一个 UIViewController(profileViewController)

    // profileViewController 
import UIKit
import SideMenu

class profileViewController: UIViewController {

//let headdercell = HeaderProfileCollectionReusableView()
@IBOutlet weak var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
// headdercell.headerDelegate = self //still not working with this too
setupSideMenu()
// Do any additional setup after loading the view.
}
}
extension profileViewController : headerCellSegmentedDelegate {
func changeTabe(whichOne: String) {
print("which tab " + whichOne)
}
}

我尝试使用 class 和 weak 协议(protocol),但仍然无法正常工作。

最佳答案

首先是你的代码

//let headdercell = HeaderProfileCollectionReusableView()

不应该被评论。

其次,取消注释后,将 headerDelegate 值分配给 self。

headdercell.headerDelegate = self

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

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