ios - 通过应用程序委托(delegate)从 TableView Controller 更改单元格内的值

标签 ios swift uitableview appdelegate

我正在开发一个项目,该项目使用地理围栏并在进入和退出这些地理围栏时存储某些数据,并希望在表格中显示这些数据。

我在应用程序委托(delegate)中使用 didEnterRegion 和 didExitRegion 函数,并希望能够从这些函数修改单元格,但我不太确定如何从应用程序委托(delegate)引用表格 View 中的单元格。

如果我想更改引用单元格中的数据,但我不确定如何使用此方法从应用程序委托(delegate)进行更改,我当前正在使用静态单元格并在与 TableView Controller 相关的类中建立 IBOutlet 连接。

我很高兴完全改变整个方法以获得更好的方法,因为这目前对我不起作用,但如果有一种方法可以做到这一点,这与我目前所做的事情相关(虽然不多,但我了解这个方法)。

谢谢!

最佳答案

进入和退出地理围栏时,您的表格 View 单元格必须更改。

因此您的表格 View 单元格需要根据其他类进行更改。

  1. 使用 TableView Controller 调用的方法创建一个协议(protocol)。

示例:

protocol GeoFenceDelegate {
    didEnter() -> Bool
    didExit() -> Bool
}
  • 创建一个类 GeoLocation 来处理所有地理围栏。

  • GeoLocation 符合 GeoFenceDelegate

  • 您的 TableView Controller 应具有对指向 GeoLocationGeoFenceDelegate引用

  • 在您的 cellForRowAtIndexPath 中调用 GeoFence 的方法并相应地更新您的单元格。

  • 此外,本地理位置发生变化时,您可以在主线程上发布通知

  • TableView Controller 可以观察这些通知并重新加载表中的单元格

  • 关于ios - 通过应用程序委托(delegate)从 TableView Controller 更改单元格内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41354971/

    相关文章:

    ios - 我如何在 Swift 中使用 __builtin_expect?

    iOS:dyld:未加载库:@rpath/CocoaLumberjack.framework/CocoaLumberjack

    ios - 从谷歌地图 iOS 中删除标记

    ios - Facebook Connect API 未在 iPhone 中创建 session

    ios - Firebase Swift Retrieve 检索单个子项

    xcode - Swift:(倒计时应用)如何让日期选择器选择截止日期?

    objective-c - 当前在混合 Objective-C/Swift 项目中导入的方式

    ios - 如何以编程方式让 UITableView 滚动到特定部分

    ios - cellForRowAtIndexPath 在调用晚于 numberOfRowsInSection 之后崩溃

    ios - heightForRowAt 与 estimatedHeightForRowAt 有什么区别?