从 AppDelegate 调用重新加载部分

2024-03-26

我正在构建一个应用程序来跟踪 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(使用前将#替换为@)

从 AppDelegate 调用重新加载部分 的相关文章

随机推荐

  • 实现 Win32 消息循环并使用 P/Invoke 创建 Window 对象

    我的主要目标是纯粹使用以下方法实现正确的消息循环P Invoke http en wikipedia org wiki Platform Invocation Services能够处理 USB HID 事件的调用 当然 它的功能应该与以下代
  • vis.js - 如何运行 getSeed() 方法

    我正在使用 vis js 创建一些数据地图 在文档中它说 理想情况下 你尝试使用未定义的种子 重新加载 直到你满意为止 与布局并使用getSeed 确定种子的方法 然而 对于我的一生 我无法弄清楚如何 使用getSeed 方法 我认为它是一
  • 了解 Deferred.pipe()

    我一直在阅读有关 jQuery 中的 deferreds 和 Promise 的内容 但我还没有使用过它 除了方法管道之外 我已经很好地理解了一切 我实在没明白那是什么 有人可以帮助我了解它的作用以及它可以在哪里使用吗 我知道有一个问题的标
  • Angular2 - 多个组件中的“监视”提供程序属性

    我来自 NG1 环境 目前我正在创建具有所有可用功能的 NG2 应用程序 在提出这个问题之前 我正在探索 google 和 stackoverflow 的问题 但没有运气 因为 Angular 2 的 api 架构发展得如此之快 而且大多数
  • ASP.NET Web 部署失败;项目中不存在 AddScheduledJob

    我有一个包含两个 WebJobs 的 ASP NET 项目 其中一个 WebJobs 可以正常发布 但第二个 WebJobs 无法发布 并且收到以下错误消息 项目中不存在目标 AddScheduledJob 两个 WebJobs 都设置为
  • R - 根据多个条件匹配来自 2 个数据帧的值(当查找 ID 的顺序是随机时)

    嗨我有两个数据框 df1 data frame PersonId1 c 1 2 3 4 5 6 7 8 9 10 1 PersonId2 c 11 12 13 14 15 16 17 18 19 20 11 Played together
  • 每条路由的 NancyFx 身份验证

    从我在源代码中看到的 RequiresAuthentication 对整个模块进行身份验证检查 有什么办法可以按路线执行此操作吗 我有同样的问题 然而事实证明RequiresAuthentication在模块级别和路由级别都有效 为了演示
  • CollapsingToolBarLayout 无法实例化

    在过去的几个月里 我一直在使用折叠工具栏布局 没有任何问题 然而今天 每当我打开 xml 文件时都会弹出此错误 确切的错误如下 以下类无法实例化 android support design widget CollapsingToolbar
  • Angular 通用 - 为客户端缓存的服务器端请求

    我看过很多关于在角度通用应用程序中缓存客户端数据的文章 因此它不会重复客户端上已在服务器上解析的请求 我只是不明白数据如何从服务器传输到客户端 我是否将 JSON 注入到预渲染的 HTML 中 还是缺少其他内容 从 Angular 5 开始
  • 如何获取已安装打印机的列表?

    我正在寻找获取已安装打印机列表的可能性 我在 Windows 操作系统中使用 JDK 1 6 有谁知道解决方案吗 先感谢您 只是想添加一个小片段 import javax print class Test public static voi
  • Xcode 4 - 一键构建多个设备?

    在 Xcode 4 中 是否可以通过某种方式进行设置 以便通过单击左上角的 运行 按钮 可以一键将 Xcode 构建到多个设备 这会节省很多时间 不断地点击 构建到iPhone 然后构建到 iPod 然后依次点击 构建到iPad 一键完成所
  • 等待 puppeteer 中的过渡结束

    我正在尝试使用 Puppeteer 测试网站 不幸的是 我在单击工具栏中的元素时遇到问题 工具栏使用 CSS 过渡来优雅地滑入页面 我的代码失败 因为我在页面仍在动画时单击元素将出现的位置 我使用超时作为解决方法 但必须有一个更优雅的解决方
  • 如何选择字段总和大于 MongoDB 中的值的位置

    使用 MongoDB 我将如何编写这个常规 SQL 语句 SELECT FROM table WHERE field1 field2 field3 gt 1 我一直在搞乱 group project add 等 我觉得我在围绕解决方案跳舞
  • 如何额外保护已使用 OAuth 2.0 访问令牌的 REST 服务?

    我有以下 REST 服务 An 聚合器暴露于外界的服务 它由用户 OAuth 2 0 访问令牌保护 这聚合器称为Internal服务 The Internal服务是在网络级别的not暴露于外界 它还由同一用户 OAuth 2 0 访问令牌保
  • 如何在 Delphi 中检测等宽字体?

    如何在 Delphi 中检测等宽字体 TFont Pitch应该fpFixed我想 但它对我来说不适用于 Delphi XE4 var Font TFont begin Font TFont Create Font Name Courier
  • Android 上的“上下文”是什么?

    在Android编程中 到底什么是Context类以及它的用途是什么 我在开发者网站 https d android com reference android content Context 但我无法清楚地理解它 简单来说 顾名思义 它是
  • Hibernate/JPA DB 架构生成最佳实践

    我只是想听听 Hibernate 专家关于基于 Hibernate JPA 的项目的数据库模式生成最佳实践的意见 尤其 项目刚开始时采用什么策略 是否建议让 Hibernate 在这个阶段自动生成架构 还是从项目的最早阶段手动创建数据库表更
  • 如何限制flatMap的并发数?

    我正在尝试使用 RxJS 编写一个脚本来处理数百个日志文件 每个日志文件大约 1GB 脚本的骨架看起来像 Rx Observable from arrayOfLogFilePath flatMap function logFilePath
  • matlab imagesc 背景颜色

    我正在使用最新版本的 matlab 我正在使用 imagesc 命令和 jet 颜色图绘制矩阵 矩阵的背景值为零 并在图像中绘制为颜色条上最低的颜色 即深蓝色 有没有办法使背景零值绘制为白色 Thanks j jet j 1 1 1 1 c
  • 从 AppDelegate 调用重新加载部分

    我正在构建一个应用程序来跟踪 BLE 设备 并且我有一个委托 在 appDelegate 中 来更新通过蓝牙发现的设备列表 我需要在表视图中显示这些设备 因此当我发现一个设备时 我会调用视图控制器中的一个函数来刷新表视图 如果我从 View