0

マスター詳細テンプレートを使用する iOS アプリがあります。マスター ビューは NSString の ID をサブビューに渡し、サブビューをユーザーが編集できるテキストビューに表示します。私がやりたいことは、サブビューからマスタービューに戻るためにボタンが押されたときに、渡された NSString のテキストを、ユーザーが変更したものに設定することです。これは可能ですか?

4

1 に答える 1

2

これに対する私の答えは、詳細ビューに文字列を渡さないことです。モデルを渡します。マスターとディテールの間には、データの上にあるモデルが必要です。モデルを渡し、ディテールでモデルを更新し、マスターに戻ると、モデルの変更が自動的にマスターに反映されます。

以下は、master に tableView のセルに対応するモデルの配列が含まれていると仮定した例です。次に、詳細ビューで self.model.myString を変更すると、マスター ビューも更新されます。

@interface MySimpleModel
@property (copy, nonatomic) NSString *myString;
@end

…</p>

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"To Detail From Master"])
    {
        // Get which indexPath of the cell in the master to use.
        NSIndexPath *indexPath = [self.tableView indexPathForCell:(UITableViewCell *)cell];

        // Get reference to the destination view controller
        DetailViewController *vc = [segue destinationViewController];

        // Pass any objects to the view controller here, like...
        vc.model = (MySimpleModel *)[self.models objectAtIndex:indexPath.row];
    }
}
于 2012-07-17T04:17:38.093 に答える