Ios 在第二个TableView中编辑数据时,刷新第一个TableView中数据的最佳方法是什么?

Ios 在第二个TableView中编辑数据时,刷新第一个TableView中数据的最佳方法是什么?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我对在另一个TableView中编辑数据时刷新原始TableView中的数据的确切要求感到困惑。有人能简单地说明正确的方法是什么吗 我有一个基于深入教程的应用程序,可以显示我最喜欢的引用。引号存储在sqlite数据库中,该数据库在应用程序启动时加载。My RootViewController显示引号的类别,数据由QuotesAppDelegate提供 在my RootViewController上有一个编辑按钮,显示一个设置视图控制器,允许您切换哪些类别将显示,哪些类别将不显示 在click_S

我对在另一个TableView中编辑数据时刷新原始TableView中的数据的确切要求感到困惑。有人能简单地说明正确的方法是什么吗

我有一个基于深入教程的应用程序,可以显示我最喜欢的引用。引号存储在sqlite数据库中,该数据库在应用程序启动时加载。My RootViewController显示引号的类别,数据由QuotesAppDelegate提供

在my RootViewController上有一个编辑按钮,显示一个设置视图控制器,允许您切换哪些类别将显示,哪些类别将不显示

在click_Saved方法中,我使用所做的任何更改更新数据库,并尝试从此设置ViewController刷新RootViewController。我在这里更新RootViewController的数据数组
cvc.categories
和底层数据库
[sub-setActive:s.active]
。我知道数据库正在正确更新,因为当我重新启动应用程序时,更改是在RootViewController中进行的。但是,我希望在单击“保存”时立即显示更改,它将取消设置ViewController并返回到RootViewController

我已经尝试了[self.tableView reloadData],尝试了通知,并搜索了解决方案,但肯定遗漏了一些基本问题,我希望能提供一些指导

- (void) save_Clicked:(id)sender {

    RootViewController *cvc = [[RootViewController alloc] init];

    QuotesAppDelegate *appDelegate = (QuotesAppDelegate *)[[UIApplication sharedApplication] delegate];

    for (Subject *s in selectedTabs){

        NSLog(@"--   Set selected subject %@-%@ to %ld", s.category_title, s.title, (long)s.active);

        //UPDATE THE ACTIVE STATUS ON THE SELECTED SUBJECTS
        [s setActiveStatus:s.active];

        //UPDATE ARRAY
        for (Subject *sub in appDelegate.subjects){

            if (sub.subject_id == s.subject_id){
                [sub setActive:s.active];
            }

        }

    }

    //RELOAD WHOLE DATABASE
    [appDelegate populateFromDatabase];

    cvc.categories = [appDelegate activeCategories];
    cvc.subjects = [appDelegate activeSubjects];
    [cvc.tableView reloadData];

    [[NSNotificationCenter defaultCenter]
     postNotificationName:@"refreshData"
     object:nil
     userInfo:nil//userInfoDictionary
     ];

    [self.navigationController dismissViewControllerAnimated:YES completion: nil];

}
编辑:我发现
numberOfRowsInSection
被多次调用,看起来它正在正确更新,然后恢复,如您在此处看到的:

2015-11-14 11:38:55.086 Quotes[49115:2751005] ~~~numberOfRowsInSection: 15
2015-11-14 11:38:55.086 Quotes[49115:2751005] ~~~numberOfRowsInSection: 16
2015-11-14 11:38:55.087 Quotes[49115:2751005] ~~~numberOfRowsInSection: 15
2015-11-14 11:38:55.533 Quotes[49115:2751005] ~~~numberOfRowsInSection: 16


您正在推到第二个表格视图?是否尝试在ViewWillDisplay/ViewDidDisplay上重新加载表格?当您返回到第一个表视图时,它将被调用!!!是推到第二个表格视图,其中显示所有类别,并在它们是否处于活动状态时打勾。我将尝试在ViewWillDisplay上重新加载。我尝试在ViewWillDisplay/ViewDidDisplay上重新加载表,但它仍然没有重新加载数据。请参阅上面帖子中的新编辑。我发现tableView正在更新,但正在恢复。在我的RootViewController中,我正在调用ViewWillDisplay和ViewDidDisplay下的[self.tableView reloadData]。我把这些注释掉了,但仍然得到了相同的结果。您正在推到第二个表视图?您是否尝试在ViewWillDisplay/ViewDidDisplay上重新加载表?当您返回到第一个表视图时,它将被调用!!!是推到第二个表格视图,其中显示所有类别,并在它们是否处于活动状态时打勾。我将尝试在ViewWillDisplay上重新加载。我尝试在ViewWillDisplay/ViewDidDisplay上重新加载表,但它仍然没有重新加载数据。请参阅上面帖子中的新编辑。我发现tableView正在更新,但正在恢复。在我的RootViewController中,我正在调用ViewWillDisplay和ViewDidDisplay下的[self.tableView reloadData]。我把这些注释掉了,但仍然得到了相同的结果。