Я новичок в Swift, пожалуйста, подождите.
Я пытаюсь включить кнопку в расширении за пределами основного класса ViewController. По сути, я хочу, чтобы кнопка работала, только если антенна Bluetooth пользователя включена и работает. Это выглядит так:
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 я пытаюсь включить свою кнопку. Однако я продолжаю получать ошибки «Использование неразрешенного идентификатора». Вот как я объявляю свою кнопку:
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()
}
}
Я гуглил часами, я пытался сделать класс открытым / publi c, и когда я объявляю свою кнопку вне класса, я получаю другая ошибка "connectButton.isEnabled = false" в функции переопределения. Что я могу сделать, чтобы получить доступ к моей кнопке за пределами основного класса ViewController?