iOS 如何在不同 View 之间操作 Bluetooth

竹林
  • 140

问题描述

我有两个 ViewController,一个 ViewA 用来搜索并显示蓝牙列表,一个 ViewB 用来控制蓝牙设备的操作,现在我在 ViewA 上继承 CBCentralManagerDelegateCBPeripheralDelegate 并在 didDiscover 中搜索到需要的设备,接着在 didConnect 中成功连接设备。

此时我需要进入 ViewB 并在 ViewB 中操作蓝牙设备或监听蓝牙数据,但是我没法获取 ViewA 中连接成功的 peripheral。所以有什么办法能够让我在 ViewA 中连接成功的设备可以直接在 ViewB 中使用呢?

尝试过哪些方法

网上查到有人说使用单例模式,建一个 BLEManager 的单例,然后 ViewA 和 ViewB 中直接使用这个单例,但是比如 didDiscover 是一个异步的方法,我怎么在 ViewA 中告诉这个单例现在开始 discover 了呢?

回复
阅读 1.4k
1 个回答

最简单地,你可以发消息啊。

[[NSNotificationCenter defaultCenter] postNotificationWithName:@"your name" object:nil];
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏