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