首先,让我解释一下我要完成的工作。我有一个带有 MasterViewController 和 EditViewController 的主从应用程序。MasterViewController 包含一个添加按钮和一个列出核心数据实体的表格。当用户点击表格行或添加按钮时,应该会弹出编辑视图。我对如何以不同方式处理编辑和添加感到困惑。
以下是我目前的做法:我的应用程序使用 Storyboard,所以我拥有editEntity
并addEntity
从 Master 转到 Edit。两个 segue 都将一个实体传递给 EditViewController,但会editEntity
根据所点击的行找到一个现有实体,同时addEntity
创建一个新实体。两个 segue 都isNew
在实体上设置了瞬态属性。
EditViewController 对核心数据一无所知——它只是编辑它给定的实体。它反过来有done
和cancel
放松的行动。MasterViewController 在isNew
考虑时会查看属性——如果cancel
实体是新的,它将删除它,如果它已经存在,它根本不应用更改。
这行得通,但它有几个问题。首先,向实体添加额外属性似乎有点麻烦。其次,如果用户在编辑新实体时在 Edit 视图中关闭了应用程序,该实体不会被删除,这肯定是出乎意料的。最重要的是,这似乎是一个核心数据本身必须有解决方案的问题——我只是不知道如何解决。非常感谢!