gpt4 book ai didi

ios - 如何访问扩展中的UIButton?

转载 作者:行者123 更新时间:2023-12-01 18:03:28 25 4
gpt4 key购买 nike

我是新手,请耐心等待。
我试图在主ViewController类之外的扩展中启用按钮。基本上,我只希望按钮在用户的蓝牙天线打开且正在工作的情况下才能工作。看起来像这样:

extension UIViewController: CBCentralManagerDelegate {

//function called after manager is initialized, state of bluetooth on manager
public func centralManagerDidUpdateState(_ central:
CBCentralManager) {
switch central.state {
case .unknown:
print("central.state is .unknown")
case .resetting:
print("central.state is .resetting")
case .unsupported:
print("central.state is .unsupported")
case .unauthorized:
print("central.state is .unauthorized")
case .poweredOff:
print("central.state is .poweredOff")
case .poweredOn:
print("central.state is .poweredOn")
connectButton.isEnabled = true

@unknown default:
print("central.state is .unknown")
}

}
}
如您所见,在.poweredOn情况下,我尝试启用我的按钮。但是,我不断收到“使用 Unresolved 标识符”错误。这是我声明按钮的方式:
class ViewController: UIViewController {


@IBOutlet var voltageOut: UILabel!
@IBOutlet public var connectButton: UIButton!

override func viewDidLoad() {
super.viewDidLoad()
connectButton.isEnabled = false
//initializing manager
myVars.centralManager = CBCentralManager(delegate: self, queue: nil)
}


@IBAction func connectButton(_ sender: Any) {
connect()
}
}
我已经搜寻了好几个小时,尝试将类设为打开/公开状态,当我在类外声明按钮时,覆盖函数中的'connectButton.isEnabled = false'导致了另一个错误。如何在主ViewController类之外访问按钮?

最佳答案

您正在扩展基类UIViewController,而不是扩展子类ViewController。基类对您在子类中声明的属性一无所知。
更改

extension UIViewController: CBCentralManagerDelegate {
extension ViewController: CBCentralManagerDelegate {

关于ios - 如何访问扩展中的UIButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62841972/

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