2013-10-10 2 views
0

저는 프로젝트에서 TableViewController가 초기 컨트롤러로 작동합니다. 그런 다음 CoreData를 사용하여 데이터를 저장합니다. 내 첫 번째 TableViewController에서 나는 스토리 보드에서 푸시 segue를 통해 ViewController에 도착합니다. 해당 ViewController 내 핵심 데이터에 데이터를 추가하지만 ViewController 닫고 TableViewController 다시 내 테이블 여전히 비어 있습니다. 테이블 행에 대한 내 코드보다TableView에서 CoreData의 데이터를 표시하지 않았습니다.

- (void)viewDidLoad 
{ 

[super viewDidLoad]; 
AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate]; 
_managedObjectContext = [appDelegate managedObjectContext]; 

NSFetchRequest*request = [[NSFetchRequest alloc]init]; 
NSEntityDescription*name = [NSEntityDescription entityForName:@"nameEntity" inManagedObjectContext:_managedObjectContext]; 
[request setEntity:name]; 

NSError*error = nil; 
NSMutableArray*mutableFetchResults = [[_managedObjectContext executeFetchRequest:request error:&error]mutableCopy]; 
if (mutableFetchResults == nil) { 

} 
[self setMutableArray:mutableFetchResults]; 
[self.tableView reloadData]; 
} 

: 여기

는 테이블 내 코드입니다

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return mutableArray.count; 
} 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Name"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
Name*name = (Name*) [mutableArray objectAtIndex:indexPath.row ]; 

cell.textLabel.text = name.shop; 
cell.detailTextLabel.text = name.date; 
return cell; 
} 

여기에 코드를 내가 저장 나의의 ViewController 데이터 :

- (IBAction)addData:(id)sender;{ 
Name *name = [NSEntityDescription  insertNewObjectForEntityForName:@"nameEntity" inManagedObjectContext:_managedObjectContext]; 
[name setShop:textField.text]; 
NSDate*date = [NSDate date]; 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"dd.MM.yyyy"]; 
NSString *dateString = [df stringFromDate:date]; 
[zoznam setDate:dateString]; 
+0

"이름"클래스는 대문자 N을 가져야합니다. 클래스에 대문자를 먼저 사용하는 것이 표준입니다. 가독성을 도와줍니다 –

답변

0

호출 중

[self.tableView reloadData]; 

viewDidLoad는 viewController를 닫을 때 호출되지 않습니다. 데이터 소스를 다시로드하려면 다음을 시도하십시오.

- (void)viewWillAppear:(BOOL)animated{ 
    AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate]; 
     _managedObjectContext = [appDelegate managedObjectContext]; 

     NSFetchRequest*request = [[NSFetchRequest alloc]init]; 
     NSEntityDescription*name = [NSEntityDescription entityForName:@"nameEntity" inManagedObjectContext:_managedObjectContext]; 
     [request setEntity:name]; 

     NSError*error = nil; 
     NSMutableArray*mutableFetchResults = [[_managedObjectContext executeFetchRequest:request error:&error]mutableCopy]; 
     [self setMutableArray:mutableFetchResults]; 
    [self.tableView reloadData]; 
} 
+0

아무 것도 일어나지 않았습니다 .. – Mayo323

+0

나머지 dataSource 메소드를 게시하십시오. numberOfSectionsInTableView : - tableView : numberOfRowsInSection : –

+0

위의 편집을 시도하면 –

관련 문제