Как управлять соединением Bluetooth с Multi View Controllers - PullRequest
0 голосов
/ 13 декабря 2018

Я работаю с проектом Bluetooth и имею 3 контроллера вида: MainMenuViewController, ViewController1 и ViewController2.Когда я перехожу из MainMenuViewController в ViewController1 или ViewController2, я могу подключиться и управлять своим устройством Bluetooth.Но затем, если я возвращаюсь к MainMenuViewController и затем пытаюсь работать с ViewController1 или ViewController2, ничего не происходит.Я могу подключиться к устройству (по крайней мере, я могу сделать это с помощью сборщика), но не управлять им.Я использую Navigation Controller и Show Segues для навигации.Как я могу перемещаться между контроллерами и иметь возможность повторно подключиться к устройству и управлять им?

Вот фрагмент кода VC1.VC2 выглядит аналогично

    override func viewDidLoad() {
    super.viewDidLoad()

  UIApplication.shared.isIdleTimerDisabled = true

    NotificationCenter.default.addObserver(self, selector: #selector(accessoryConnected), name: NSNotification.Name.EAAccessoryDidConnect, object: nil)
    NotificationCenter.default.addObserver(self, selector: #selector(accessoryDisconnected), name: NSNotification.Name.EAAccessoryDidDisconnect, object: nil)
    EAAccessoryManager.shared().registerForLocalNotifications()
    EAAccessoryManager.shared().showBluetoothAccessoryPicker(withNameFilter: nil, completion: {(error: NSError?) in

        } as? EABluetoothAccessoryPickerCompletion)

/// Здесь я пытался закрыть соединение при нажатии Back, но это не помогло мне с возможностью управления устройством после возврата к этому VC

 override func didMove(toParent parent: UIViewController?) {
    super.didMove(toParent: parent)

    if parent == nil {
        debugPrint("Back Button pressed.")
             stopVC1()
    }
}

func stopVC1 () {

        self.stopTimer()
    self.brick?.closeConnection()
    close(0)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...