更新表视图单元格中的核心数据值后如何刷新

时间:2013-01-02 07:01:32

标签: iphone objective-c core-data

我在我的应用程序中使用核心数据。我有一个两个视图控制器一个viewcontroller显示书籍名称列表后选择任何一本书移动到第二个视图控制器使用更新按钮将值更新为1将显示在核心数据表中。现在回到主视图控制器并且在选择相同的书之后不会在secondviewcontroller中显示值但是核心数据表的值为1.如何在核心数据表值的表视图中重新加载主视图控制器.plz任何人知道帮帮我。

这里是源代码

- (void)viewDidLoad
{
  [super viewDidLoad];

  if(dictionary!=nil)//net is not connected fetch core data to display the booknames
  {
     UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@" Warning Message" message:@"You are not connect to internet so becoz of loading default values" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
     [alert show];
     [self fetchValueFromDatabase];

  }      

}

-(void)fetchValueFromDatabase
{

 NSFetchRequest *fech=[[NSFetchRequest alloc]init];
 NSEntityDescription *entity=[NSEntityDescription entityForName:@"Bookname" inManagedObjectContext:self.managedObjectContext];
 [fech setEntity:entity];
 NSError *savingError=nil;
 NSArray *allBook=[self.managedObjectContext executeFetchRequest:fech error:&savingError];

 NSLog(@"Array count value:%i",allBook.count);

 coreBookName=[allBook valueForKey:@"bookName"];
 NSLog(@"all value:%@",coreBookName);

 for(NSString *key in coreBookName)
 {
     NSLog(@"Key value:%@",key);  

    [insertBookname addObject:key];
 }

 coreVoteCount=[allBook valueForKey:@"vote"];
 NSLog(@"All vote value:%@",coreVoteCount);
 for(NSString *key in coreVoteCount)
 {
    [bookCount addObject:key];
    NSLog(@"Key value:%@",key);
 }

 for(NSArray *key in allBook)
 {
     [addItems addObject:key];
     NSLog(@"All items:%@",key);
 }
}


- (void)viewWillAppear:(BOOL)animated
 {
    [super viewWillAppear:animated];

    [self.tableview1 reloadData];
}

2 个答案:

答案 0 :(得分:0)

从(void)viewWillAppear:method

调用以下方法
[self fetchValueFromDatabase];//call this from ViewWillAppear

让我知道它的工作与否......

快乐编码。!!!!

答案 1 :(得分:0)

您在viewDidLoad [self fetchValueFromDatabase]; [self.tableview1 reloadData]; 中调用此内容,这在viewWillAppear中就是您未获得任何更新的原因表

您应该在功能结束时调用 [self.tableview1 reloadData]; fetchValueFromDatabase

-(void)fetchValueFromDatabase
{

 NSFetchRequest *fech=[[NSFetchRequest alloc]init];
 NSEntityDescription *entity=[NSEntityDescription entityForName:@"Bookname"  inManagedObjectContext:self.managedObjectContext];
 [fech setEntity:entity];
 NSError *savingError=nil;
 ........................
 .......................

 .......................

 [self.tableview1 reloadData];

}