我有一个 UITableView ,它在点击单元格时以模态方式呈现 UIViewController 。UIViewController 从与点击的单元格对应的模型对象接收数据,并显示一个界面来编辑这些数据。当用户完成编辑时,点击按钮关闭 UIViewController,并将编辑写入模型对象。
以下代码会出现任何内存或设计问题吗?
在呈现 UITableView 子类实现时,充当呈现的 UIViewController 的委托:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
UINavigationController *navigationController = segue.destinationViewController;
navigationController.delegate = this;
navigationController.dataModel = someDataModel;
}
// delegate callback
- (void) onViewControllerDone: (UIViewController *)controller {
[self.tableView reloadData];
}
在呈现的 UIViewController 子类实现中:
- (IBAction) done: (id)sender {
// directly modify dataModel passed into UIViewController with data from UI
[self.dataModel.someProperty setString: self.textView.text];
[self.delegate onViewControllerDone:self];
}
将数据模型传递到视图中并让视图进行更改,这听起来很有趣。我是 Objective-C / iOS 开发的新手,不确定是否有更好/首选的方法来做到这一点?