0

アプリでコア データを使用しています。2 つのビュー コントローラーがあり、1 つのビュー コントローラーが本の名前のリストを表示します。ブックのいずれかを選択した後、2 番目のビュー コントローラーに移動して、更新ボタンを使用して値を 1 に更新します。表示される値は 1 です。メインビューコントローラーに戻り、同じ本を選択した後、2番目のビューコントローラーに値が表示されませんが、値が1のコアデータテーブルが表示されます。コアデータテーブル値を使用してテーブルビューでメインビューコントローラーをリロードする方法.

以下ソースコードはこちら

- (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];
}
4

2 に答える 2

0

これをviewDidLoad [selffetchValueFromDatabase]で呼び出しています。および [self.tableview1reloadData]; これはviewWillAppearで表示されるため、テーブルに更新が表示されません。

あなたがすべきことは[self.tableview1reloadData]を呼び出すことです。関数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];

}
于 2013-01-02T07:20:23.167 に答える
0

(void)viewWillAppear:method から以下のメソッドを呼び出します

[self fetchValueFromDatabase];//call this from ViewWillAppear

それが機能しているかどうかを教えてください...

ハッピーコーディング.!!!!

于 2013-01-02T07:06:51.773 に答える