当前位置: 首页 > 面试题库 >

导航到其他ViewController时,BLE外设断开连接

上官和惬
2023-03-14
问题内容

我正在使用具有多个ViewController的BLE
iOS(Swift)应用程序。主ViewController有一个导航到TableViewController的按钮,该按钮已检测到要连接的BLE设备。但是,当我返回主视图或其他视图时,外围设备将断开连接。我试图将TableViewController的外围设备传递给主ViewController,但是仍然断开连接。

MainViewController:

var bleManager: BLEManager!
var peripheral: CBPeripheral!

override func viewDidLoad() {
    bleManager = BLEManager()
    super.viewDidLoad()
}

override func viewWillAppear(_ animated: Bool) {
    if let peripheral = self.peripheral {
        do {
            print("Value from display = \(peripheral.state)")
        }
    }
}

func setPeripheral(sent: CBPeripheral) {
    self.peripheral = sent
}


@IBAction func manageDevice(sender: UIButton)
{
    // 1. Instantiate TableViewController
    let tableViewController = self.storyboard?.instantiateViewController(withIdentifier: "TableViewController") as! TableViewController

    // 2. Set self as a value to delegate
    tableViewController.delegate = self

    // 3. Push SecondViewController
    self.navigationController?.pushViewController(tableViewController, animated: true)
}

问题答案:

创建一个Singleton类,并在其中添加bleManager和外围设备属性:

class Shared { 
    private init(){ } 
    static let instance = Shared()
    var bleManager: BLEManager!
    var peripheral: CBPeripheral! 
}

您可以通过不同的控制器访问同一实例:

Shared.instance.bleManager = BLEManager()


 类似资料:
  • 我正在尝试使用导航组件导航到另一个活动(登录)。 目前,活动1具有导航图1,活动2具有导航图2。 我在中为添加了一个目标。当我导航时,我得到一个空白屏幕,尽管有一个导航图,其中包含另一个片段的起始目标。 没有被调用,或者至少没有被我在中的断点击中。 当我在navGraph1中嵌套navGraph2时,我可以导航到navGraph2中的起始目标片段。navGraph2中的这个起始目的地位于compo

  • 我的导航有问题。这是我的导航码。 我创建了三个堆栈,如AppStack、StartStack和AuthStack。这些是在createAppContainer()函数中使用的,希望访问这些 this.props.navigation.navigate('App') ... 我可以访问 this.props.navigation.navigate(开始) 和 this.props.navigatio

  • 问题内容: 我有一个基于Firebase数据填充的UICollectionView。我已经创建了填充UICollectionView的自定义单元格: 我试图访问UICollectionView中单击的单元格的pollQuestion变量,并将其传递给另一个ViewController: PollController: } 更新:我已经修改了代码,现在收到错误 该应用程序在运行时崩溃,我正在尝试解决

  • 我正在用MVVM light制作一个WindowsUniversal10应用程序。 但是现在,如果我单击ShowWeatherPage上的项目,我会导航到ShowWeatherDetailPage以获取有关单击项目的更多详细信息。但是我不知道我怎么能做到这一点。你能帮我做这个吗? 下面你可以找到我的代码。我使用IocContainers,每个页面都有一个viewmodel,只有命令绑定。

  • Iam正在使用ionic应用程序编辑配置文件和查看配置文件。编辑编辑页面的详细信息后,它将导航到查看配置文件页面。 我希望在导航后刷新查看配置文件页面。 这是editprofile.ts代码: 首先我用下面的导航 通过谷歌搜索,我添加了这个来在导航后刷新视图配置文件 现在发生的是,首先它被重定向到查看个人资料页面,并且没有刷新,它直接重定向到主页,主页被刷新。 请帮助我如何在从“编辑配置文件”页面

  • 我正在尝试创建一个导航抽屉活动,这样我就可以扩展该活动,并按照这个问题链接中给出的答案在所有活动中使用菜单,但我的测试应用程序总是崩溃,下面是我的代码: BaseActivity.java