私は 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 をターゲットにしています。