0

所以我在我的UITableView上有一个按钮,打开和关闭一个过滤器,该过滤器通过名为isLikedBOOL进行过滤。我可以显示所有结果,或只显示指定为喜欢的结果。我可以点击任何单元格,然后进入详细信息页面,在此可以打开或关闭BOOL在从详细视图返回时反映对NSFetchedResultsController结果的更改?

如果我处于喜好列表中,然后点击其中一个,然后将其最喜欢的状态设置为关闭状态,然后再次回到喜欢过滤的状态,该状态并未消失。如果我关闭并重新打开过滤器,则该条目消失。

我希望在该视图返回时立即发生更改,而不需要打开和关闭筛选器以使其生效。我怎样才能做到这一点?一些相关的代码如下:

这里是当我打开过滤器和关闭时调用的方法:

- (IBAction) filterLiked: (id) sender 
{ 
    if (isDisplayingLiked) { 
     // Revert to the predicate that only removes disliked entries. 
     [_fetchRequest setPredicate: [NSPredicate predicateWithFormat: @"isDisliked == 0"]]; 
     NSError *error; 
     if (![self.fetchedResultsController performFetch: &error]) NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 

     // Update the tableView and update state variables. 
     [self.tableView reloadData]; 
     isDisplayingLiked = NO; 
     [_showLikedButton setTitle: @"Liked"]; 

    } else { 
     // Revert to the predicate that only shows liked entries. 
     [_fetchRequest setPredicate: [NSPredicate predicateWithFormat:@"isLiked == 1"]]; 
     NSError *error; 
     if (![self.fetchedResultsController performFetch: &error]) NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 

     // Update the tableView and update state variables. 
     [self.tableView reloadData]; 
     isDisplayingLiked = YES; 
     [_showLikedButton setTitle: @"All"]; 
    } 
} 

这里是当我打开或关闭从喜欢的状态时调用的代码在详细视图内:

- (IBAction) changeLikedSwitch: (id) sender 
{ 
    UISwitch *likedSwitch = (UISwitch *) sender; 
    if ([likedSwitch isOn]) { 
     [_selectedQuote setIsLiked: [NSNumber numberWithBool: YES]]; 
    } else { 
     [_selectedQuote setIsLiked: [NSNumber numberWithBool: NO]]; 
    } 

    NSError *error; 
    if (![[[CDManager sharedManager] managedObjectContext] save:&error]) NSLog(@"Saving changes failed: %@, %@", error, [error userInfo]); 
} 

如果您需要更多代码,请让我知道。

回答

0

只要您从详细视图返回,就需要重新加载表格视图的数据。

一种常见的技术是使用授权。使表视图控制器成为详细视图控制器的代表。然后,在详细视图控制器viewWillDisappear:中,您可以调用委托人的方法reloadData

+0

我尝试添加一个委托,但呼吁在这一点上表'reloadData'已经没有任何影响。我仍然需要开启和关闭过滤器以获得所需的更改。 – Luke 2013-02-26 11:51:07

+0

取消顶一些对象后出来的观点时,我也越来越崩溃,我认为这是期望他们仍然存在。非常困惑。 – Luke 2013-02-26 11:55:38

+0

抱歉让你感到困惑。你使用'UINavigationController'机制还是以模态方式呈现细节视图? – ilmiacs 2013-02-26 11:59:24

相关问题