通过应用程序委托从表格视图控制器更改单元格内的值
Posted
技术标签:
【中文标题】通过应用程序委托从表格视图控制器更改单元格内的值【英文标题】:Changing values inside a cell from a table view controller through the app delegate 【发布时间】:2016-12-28 03:25:31 【问题描述】:我正在开展一个项目,该项目使用地理围栏并在输入和退出这些地理围栏时存储某些数据,并希望在表格中显示这些数据。
我在我的应用委托中使用 didEnterRegion 和 didExitRegion 函数,并希望能够从这些函数中修改单元格,但我不太确定如何从应用委托中引用表格视图中的单元格。
如果我想更改引用单元格中的数据但不确定如何使用此方法从应用程序委托进行更改,我目前正在使用静态单元格并在与表视图控制器相关的类中建立 IBOutlet 连接。
我很高兴将整个方法完全改变为一个更好的方法,因为这目前对我不起作用,但如果有一种与我目前所做的相关的方法来做这件事(虽然不多,但我理解这种方法)。
谢谢!
【问题讨论】:
您能否提供代码或更具体的问题信息? 【参考方案1】:进入和退出地理围栏时,您的表格视图单元格必须更改。
因此您的表格视图单元格需要根据其他类进行更改。
-
使用将由表视图控制器调用的方法创建一个协议。
例子:
protocol GeoFenceDelegate
didEnter() -> Bool
didExit() -> Bool
创建一个类 GeoLocation
来处理所有地理围栏。
让GeoLocation
符合GeoFenceDelegate
您的表格视图控制器应该有一个 weak
引用指向 GeoFenceDelegate
指向 GeoLocation
在您的cellForRowAtIndexPath
中调用GeoFence
的方法并相应地更新您的单元格。
此外,当地理位置发生变化时,您可以在主线程上发布通知
表格视图控制器可以观察这些通知并重新加载表格中的单元格
【讨论】:
以上是关于通过应用程序委托从表格视图控制器更改单元格内的值的主要内容,如果未能解决你的问题,请参考以下文章