gpt4 book ai didi

ios - Swift:创建一个调用另一个类中的方法的按钮

转载 作者:行者123 更新时间:2023-11-29 02:08:17 28 4
gpt4 key购买 nike

我想在一个名为“store”的类中创建按钮,当它被点击时,它会在另一个名为 ExploreViewController 的类中调用一个名为“storeSelected”的方法。

//class store
//create button
button.addTarget(ExploreViewController(), action: "storeSelected:", forControlEvents: UIControlEvents.TouchUpInside)


//class ExploreViewController


@IBAction func storeSelected(sender: UIButton) {

self.performSegueWithIdentifier("pushProductDetail", sender: sender)
}

点击按钮时上面的代码会产生错误,为什么?我该如何解决?

提前谢谢你。

最佳答案

您正在 ExploreViewController 的新实例上执行操作,该实例将在调用该方法后立即释放。将您的 ExploreViewController 存储在某处或使用现有实例。

示例代码:

Store 类,假设已创建按钮

protocol storeDelegate {
func storeSelected(sender:UIButton)
}

var delegate: storeDelegate // <-- conforms to the storeDelegate protocol

// somewhere in viewDidLoad?
button.addTarget(delegate, action: "storeSelected:", forControlEvents: UIControlEvents.TouchUpInside)

ExploreViewController

class ExploreViewController: storeDelegate {
func storeSelected(sender: UIButton) {
self.performSegueWithIdentifier("pushProductDetail", sender: sender)
}

// somewhere in here where you create the Store class:
store.delegate = self
}

关于ios - Swift:创建一个调用另一个类中的方法的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29559699/

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