我正在构建一个应用程序来跟踪 BLE 设备,并且我有一个委托(在 appDelegate 中)来更新通过蓝牙发现的设备列表。
我需要在表视图中显示这些设备,因此当我发现一个设备时,我会调用视图控制器中的一个函数来刷新表视图。
如果我从 ViewController 调用这个函数,它会起作用,但是当我从 AppDelegate 调用它时,它不会执行任何操作,甚至不会出现错误。
应用程序委托:
//MARK: Discovered Device
func DeviceDiscovered(_ macAddress: String!, withName name: String!, ofType type: Int, andSignalStrength strength: Int) {
discoveredList["\(entry["time"]!)"] = entry
ViewController().refresh()
}
}
视图控制器:
func refresh() {
self.tableView?.reloadSections(NSIndexSet(index: _sectionIndices.discoveredDevices.hashValue) as IndexSet, with: .none)
}
我在 ViewController 中添加了一个按钮,只需调用刷新()即可工作。或者至少它会重新加载该部分,但 DiscoverList 字典也不会在 ViewController 中更新,但一次会出现一个问题!
谢谢你的帮助!
问题是ViewController()
不是你的视图控制器。这是一个新的单独实例。你需要refer给你的existing视图控制器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)