Table View Controller未显示更新的核心数据值

时间:2014-04-15 20:00:49

标签: ios objective-c core-data reloaddata pull-to-refresh

从头开始使用TVC和核心数据tableview控制器。 我已经在viewdidload中实现了一个pull来刷新。问题是当我使用sqllite更新核心数据时,即使我调用[self.tableView reloadData];

,数据也不会更新

我的MasterViewController.h:

#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>

@interface MasterViewController : UITableViewController <NSFetchedResultsControllerDelegate>
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;

@end

和我的MasterViewController.m(来自Apple模板):

#import "MasterViewController.h"

@interface MasterViewController ()
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath;
@end

@implementation MasterViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.navigationItem.leftBarButtonItem = self.editButtonItem;

    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject:)];
    self.navigationItem.rightBarButtonItem = addButton;

    // Initialize Refresh Control
    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];

    // Configure Refresh Control
    [refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];

    // Configure View Controller
    [self setRefreshControl:refreshControl];
}

- (void)refresh:(id)sender {

    NSLog(@"Refreshing View ...");

    // End Refreshing
    [(UIRefreshControl *)sender endRefreshing];

    [self.tableView reloadData];

}

感谢您的帮助!!

1 个答案:

答案 0 :(得分:2)

我没有看到代码的任何部分更新您的数据。

你打电话给&#34; reloadData&#34;在您的UITableView上不会获取任何新数据,它将再次调用您实现的数据源协议调用(numberOfSectionsInTableView,numberOfRowsInSection,cellForRowAtIndexPath等)。因此,当提取刷新控件时,获取新数据,然后调用&#34; reloadData&#34;。