0

ビュー1のコアデータに保存された費用とその価格のリストがあります。これらの値をview2で取得し、tableViewに表示しています。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Displayin the values in a Cell.

NSManagedObject *records = nil;
        records = [self.listOfExpenses objectAtIndex:indexPath.row];
        self.firstLabel.text = [records valueForKey:@"category"];
        NSString *dateString = [NSString stringWithFormat:@"%@",[records valueForKey:@"date"]];
        NSString *dateWithInitialFormat = dateString;
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
        [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
        NSDate *date = [dateFormatter dateFromString:dateWithInitialFormat];
        [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
        NSString *dateWithNewFormat = [dateFormatter stringFromDate:date];
        self.secondLabel.text = dateWithNewFormat;
        [dateFormatter release];
        NSString *amountString = [NSString stringWithFormat:@"%@",[records valueForKey:@"amount"]];
        self.thirdLabel.text = amountString;
}

tableView の行をクリックすると、view1 に移動し、値を編集してコア データを更新できるはずです。これを達成する方法を教えてもらえますか?

4

1 に答える 1

1

まず、NSFetchedResultsControllerを使用して、コア データからテーブル ビューを生成することをお勧めします (その逆)。次に、tableview から個々の行をクリックしたときに、以下のように tableview のデリゲートを使用します (アプリのデリゲートでは、selectedMesageIndex という int 変数を宣言しました)。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   //YourAppDelegate is the name of your app delegate class
   YourAppDelegate* sharedDa= (YourAppDelegate *)([[UIApplication sharedApplication]delegate]);

   sharedData.selectedMesageIndex = indexPath.row;

}  

最初のビュー コントローラーに戻ったら、コア データからデータをフェッチし、選択したインデックス パスのデータ パラメーターを取得します (再び を介して sharedData.selectedMesageIndex)。

于 2012-08-01T13:37:20.450 に答える