0

私は iOS プログラミングの初心者で、現在学校で iOS のクラスを受講しています。私が行っているプロジェクトでは、iPhone 用の基本的なマスター/ディテール アプリケーションを作成する必要があります。私のアプリでは、単純な To Do リスト タイプのアプリを作成しています。各タスクの名前はマスター ビューに表示され、タスクの名前は詳細ビューで変更できます。押されたときにアンワインド セグエ デリゲートを持つ保存ボタンを設定しました。ボタンを押すと、マスター ビューに戻ります。対応するセルの値をリアルタイムで変更することはできません。コントロールがマスタービューに戻って保存されるまで、変更された情報は保存されないため、マスタービューが変更された情報を取得していることはわかっています。アプリを再実行すると、デフォルト名ではなく新しい名前が表示されます。

これは巻き戻しセグエのデリゲートです

- (IBAction) done:(UIStoryboardSegue *)segue
{
// index for the cell in the master view table that was changed
NSIndexPath *changeIndex = [self.tableView indexPathForSelectedRow];

[self tableView:self.tableView cellForRowAtIndexPath:changeIndex];

// place the new dictionary entry created by the detail view in the location of the
// array where the old entry was located
_taskList[changeIndex.row] = self.ChangedEntry;

// store the change in the plist file
[_taskList writeToFile:self->documentPlistPath atomically:YES];
}

この関数を呼び出すと、テーブル内のセルのテキストが変更されるように見えますが、よくわかりません

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:  (NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.textLabel.text = _taskList[indexPath.row][TASK_DATA_NAME];
return cell;
}

ええ、アプリを閉じて再度開くことなく、マスタービューに詳細ビューで行われた変更を反映させる方法を理解しようとしています。ああ、私は Xcode 5 を使用し、iOS 7 をターゲットにしています。

4

1 に答える 1

1

基本的に、データ モデルを更新した後 ( _taskList)、呼び出してテーブル ビューを更新する必要がありますreloadData。これにより、すべての行を更新するように指示されます。

于 2013-10-17T18:40:04.830 に答える