gpt4 book ai didi

ios - 根据用户按钮按下 IOS 更改 FRC 中的排序描述符

转载 作者:行者123 更新时间:2023-11-29 04:16:14 25 4
gpt4 key购买 nike

我正在制作一个 iPhone 应用程序,我有一个 TableView ,它使用 frc Controller 从 Core Data 中提取数据,并显示按标题排序的内容。如果用户导航到下一个屏幕,他们可以单击三个按钮之一来更改 frc 中的排序描述符。如何在下一个屏幕上调用该 frc 并根据用户按下的按钮更改其排序描述符?

- (IBAction)btnValue:(id)sender {

}


- (NSFetchedResultsController *)frc_Work

{

// If the frc is already configured, simply return it

if (_frc_Work) return _frc_gradedWork;



// Otherwise, create a new frc, and set it as the property (and return it below)

_frc_Work = [_cdStack frcWithEntityNamed:@"GradedWork" withPredicateFormat:nil predicateObject:nil sortDescriptors:@"title,YES" andSectionNameKeyPath:nil];



return _frc_Work;

最佳答案

每当按下下一个屏幕中的按钮时,使用委托(delegate)或通知在屏幕之间进行通信。

收到通知后,将排序描述符保留为属性。当您收到通知时更改它并设置一个脏标志变量,您将在 viewWillAppear 中检查其值以重新加载页面。

详细说明:

您有两个屏幕(我假设有两个 View Controller )

第一个屏幕显示根据特定条件排序的数据。在查询核心数据时,您需要将此 NSSortdescriptor 传递给请求以获取正确的数据。

此屏幕将有一个 NSSortDescriptot 属性。

第二个屏幕显示三个按钮,它们有一个通用的 IBAction。基于按下的按钮调用委托(delegate)方法说 SortingCriteriaChanged:(NSSortDescriptor *sortDescriptor),创建适当的排序描述符并将其传递给此委托(delegate)方法。在推送第二个屏幕之前,将第一个屏幕设置为该屏幕的委托(delegate),并实现上述方法。

在委托(delegate)方法中,将 sortDescriptor 设置为传递给委托(delegate)方法的排序描述符。

现在不要重新加载任何内容。

当您返回到上一个屏幕时,viewWillAppear 会被调用。在这里,只有当排序条件已更改时,您才应该重新加载排序列表。

为此,您需要一个 BOOL 属性,例如:needToReload。在委托(delegate)方法中将其设置为 YES 并在 viewWillAppear 中检查其值并重新加载列表。列表重新加载完成后,再次将 BOOL 属性设置为 NO。

关于ios - 根据用户按钮按下 IOS 更改 FRC 中的排序描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13662155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com