【问题标题】:Swift: restore previous view controller after an unwind segueSwift:在展开 segue 后恢复以前的视图控制器
【发布时间】:2017-06-24 09:53:53
【问题描述】:

我有两个 swift UI 视图控制器:

class AViewController:UIViewController {
    [...]
    func OnBluetoothEventA() {
        performSegue(withIdentifier: "BSegue", sender: self)
    }
    func OnBluetoothEventB() {
        // Go back to this viewcontroller!
    }
}

class BViewController:UIViewController {
    [...]
}

当用户关闭蓝牙时,我执行 segue 以显示动画和消息。

当用户打开蓝牙时,我想恢复以前的 ViewControl。

哪种方法最快捷?

【问题讨论】:

  • 您可以为此目的使用 KVO(键值观察器)。在蓝牙关闭时添加观察者,然后触发 firstViewController 中的方法转到 secondViewController。再次在 secondViewController 中使用另一个观察者来观察蓝牙何时打开。现在google一下如何在swift中使用KVO。

标签: ios swift segue unwind-segue


【解决方案1】:

我在 BViewController 中创建了一个新的蓝牙管理器,然后我使用了dismiss:

extension ConnectAlertViewController: CBPeripheralManagerDelegate {
    // MARK: Bluetooth
    func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) {
        switch(peripheral.state) {
        case .poweredOn:
            self.dismiss(animated: true)
            break
        default:
            break
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多