0

我有一个使用主详细信息模板的 ios 应用程序,主视图将 NSString 的 id 传递给子视图,以便子视图显示在用户可以编辑的文本视图中。我想要做的是,当按下按钮从子视图返回到主视图时,将传入的 NSString 的文本设置为用户将其更改为的任何内容。这可能吗?

4

1 回答 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 回答