gpt4 book ai didi

ios - 从 UIButton 调用类外的函数

转载 作者:搜寻专家 更新时间:2023-10-31 21:53:49 26 4
gpt4 key购买 nike

我有一个函数,我想在按下按钮时调用它,但与我迄今为止所做的任何事情不同的是,我希望能够从多个 ViewController 中的任何一个访问它。我不想在每个 ViewController 中重复相同的代码块。

我已经尝试在 ViewController 类之外定义我想调用的函数,但我无法弄清楚我需要将目标设置为什么才能达到它。通常使用 self 是因为该函数是在类中定义的,但是如果该函数在另一个文件中和/或类之外怎么办?

button.addTarget(???, action: "myFunction:", forControlEvents: UIControlEvents.TouchUpInside)

编辑:我可以使用的另一种解决方案是做这样的事情,并在创建按钮的函数中定义我想调用的函数,但我遇到了同样的问题,不知道 target 需要达到它。

class ViewController {
// Main code here
}

func makeButton() {
// Code to make button here
button.addTarget(???, action: "buttonPressed",...)

func buttonPressed() {
// Code that runs when the button is pressed goes here
}
}

提前致谢!

最佳答案

您可以在此处找到完整的教程。 https://github.com/fatihyildizhan/SingletonFunctionForAddTarget

如果你不想下载它:

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var btnGotoVacation: UIButton!

override func viewDidLoad() {
super.viewDidLoad()

btnGotoVacation.addTarget(MySingletonClass.sharedInstance, action: Selector("visitBodrum:"), forControlEvents:.TouchUpInside)
}
}

class MySingletonClass:NSObject {
static let sharedInstance = MySingletonClass()

func visitBodrum(sender:AnyObject) {
print("don't forget to visit yalikavak :) ")
}
}

The key point is that you should inherit your singleton class from NSObject.

否则你可能会得到这个错误: enter image description here

如果你这样做:

enter image description here

关于ios - 从 UIButton 调用类外的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27848144/

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