我添加了一个button
,我想看到我ViewControllers
的所有内容
UIApplication.shared.keyWindow?.addSubview(mybutton)
我想弄清楚的是,我如何制作一个button
可以调用的全局函数,无论哪个是我当前的ViewController
?
答案 0 :(得分:0)
在您创建按钮的位置添加:
mybutton.addTarget(self, action: #selector(buttonPressed), for: .touchUpInside)
UIApplication.shared.keyWindow?.addSubview(mybutton)
然后在同一个类中添加一个方法,以便在按下按钮时进行处理:
func buttonPressed() {
// Button handling code here e.g:
// StaticButtonHandler.handleButtonPress()
// or
// ButtonHandler.sharedInstance.handleButtonPress()
}
如果您需要从任何地方调用全局代码并且它不需要状态,那么将它放在某个静态方法中是最简单的:
class StaticButtonHandler {
static func handleButtonPress() {
// Handle the button press
}
}
或者使用单例模式:
class ButtonHandler {
static let sharedInstance = ButtonHandler()
func handleButtonPress() {
// Handle the button press
}
}
答案 1 :(得分:0)
您可以在代码中声明一个包含“全局”操作方法的类:
class GlobalActionHandler {
@objc static func buttonClicked() {
print("Button click handler")
}
}
然后在您的按钮上添加目标和操作,如下所示:
button.addTarget(GlobalActionHandler.self,
action: #selector(GlobalActionHandler.buttonClicked),
for: .touchUpInside)
如果您愿意,还可以将GlobalActionHandler
设为单身,buttonClicked()
为实例方法。