我有一个使用主详细信息模板的 ios 应用程序,主视图将 NSString 的 id 传递给子视图,以便子视图显示在用户可以编辑的文本视图中。我想要做的是,当按下按钮从子视图返回到主视图时,将传入的 NSString 的文本设置为用户将其更改为的任何内容。这可能吗?
问问题
117 次
1 回答
2
我对此的回答是不要将字符串传递给详细视图。通过一个模型。主节点和细节节点之间的数据必须有一些覆盖模型。传递模型,在细节中更新模型,然后当你回到master时,模型中的变化会自动反映在master中。
这是一个示例,假设 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 回答