2014-04-15 1 views
0

TVC 및 코어 데이터 테이블 뷰 컨트롤러로 처음부터 시작되었습니다. 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 :

#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

라인이 있습니까? NSLog (@ "Refreshing View ..."); 가 호출 되나요? 그렇다면, 우리는 귀하의 cellForRowAtIndexPathMethod가 답을 제공 할 필요가 있다고 생각합니다. – JWKothe

+0

YE라고합니다. 새로 고침 절차에서 가져 오기를 추가하는 것을 잊어 버렸습니다! – kesdonc

답변

1

데이터를 업데이트하는 코드가 보이지 않습니다.

UITableView에서 "reloadData"라는 사실은 새로운 데이터를 가져 오지 않으며 구현 한 데이터 소스 프로토콜 (numberOfSectionsInTableView, numberOfRowsInSection, cellForRowAtIndexPath 등)을 다시 호출합니다. 따라서 새로 고침 컨트롤을 가져 오면 새 데이터를 가져온 다음 "reloadData"를 호출하십시오.

+0

사실, 나는 가져 오기가 표시되지 않습니다. '[NSFetchedResultsController deleteCacheWithName : nil];을 추가했습니다. NSError * error = nil; [self.fetchedResultsController performFetch : & error];'새로 고침 절차에서 매력처럼 작동합니다. – kesdonc

관련 문제