从头开始使用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];
}
感谢您的帮助!!
答案 0 :(得分:2)
我没有看到代码的任何部分更新您的数据。
你打电话给&#34; reloadData&#34;在您的UITableView上不会获取任何新数据,它将再次调用您实现的数据源协议调用(numberOfSectionsInTableView,numberOfRowsInSection,cellForRowAtIndexPath等)。因此,当提取刷新控件时,获取新数据,然后调用&#34; reloadData&#34;。