gpt4 book ai didi

ios - 如何在 Swift3 中将事件添加到我的 CustomCell

转载 作者:行者123 更新时间:2023-11-30 12:59:38 25 4
gpt4 key购买 nike

我有一个 UITableView,其中的行包含两个 UISwitch 按钮。在我升级到 Xcode8 之前,它与我一起向 View Controller 添加一个协议(protocol),如下所示

protocol CustomCellDelegator {
func callSegueFromCell()
}

然后我将以下内容添加到我的 CustomCell swift 文件中,该文件处理我的自定义单元的导出。

open class CustomTableViewCell: UITableViewCell {
var delegate:CustomCellDelegator!

@IBOutlet weak var uidLabel: UILabel!
@IBOutlet weak var stateLabel: UILabel!
@IBOutlet weak var operatedSwitch: UISwitch!
@IBOutlet weak var switchRTN: UISwitch!

override open func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}

@IBAction func operatedSwitchChange() {
if operatedSwitch.isOn {
AppDelegate.myGlobalVars.gSwitchType = "OpsOn"
}
else {
AppDelegate.myGlobalVars.gSwitchType = "OpsOff"
}
if(self.delegate != nil){ //Just to be safe.
self.delegate.callSegueFromCell()
}
}

@IBAction func rtnSwitchChange() {
if switchRTN.isOn {
AppDelegate.myGlobalVars.gSwitchType = "RtnOn"
}
else {
AppDelegate.myGlobalVars.gSwitchType = "RtnOff"
}
if(self.delegate != nil){ //Just to be safe.
self.delegate.callSegueFromCell()
}
}
}

直到我升级这个工作并且委托(delegate)总是有一个值,现在它总是为零并且永远不会调用segue。

升级后我需要做哪些不同的事情才能使其再次正常工作?

最佳答案

确保您已在 ViewController 中分配委托(delegate):

// Make your ViewController conform to the protocol
class MyViewController: CustomCellDelegator {

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: CustomTableViewCell = tableView.dequeueReusableCellWithIdentifier("MyCellIdentifier", forIndexPath: indexPath) as! CustomTableViewCell
cell.delegate = self

return cell
}

func callSegueFromCell() {
// perform your segue here
}
}

关于ios - 如何在 Swift3 中将事件添加到我的 CustomCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39996910/

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