我正在将应用程序更新到Swift中,并且有一个tableView,可以从模态呈现的视图中添加项目。按下“保存”按钮时此功能正常,但按下取消时,表格视图顶部显示一个空白行,表示添加了空白项目。我错过了什么?
AddViewController协议是:
protocol NewGaugeDelegate {
func didFinish(viewController:AddGaugeViewController, didSave:Bool)
}
和didSave函数是:
extension AddGaugeViewController {
@IBAction func cancelButtonWasTapped(_ sender: AnyObject) {
delegate?.didFinish(viewController: self, didSave: false)
}
@IBAction func saveButtonWasTapped(_ sender: AnyObject) {
addGauge()
delegate?.didFinish(viewController: self, didSave: true)
}
}
tableView控制器中的,协议的访问方式如下:
extension GaugeTableViewController: NewGaugeDelegate {
func didFinish(viewController: AddGaugeViewController, didSave: Bool) {
guard didSave,
let context = viewController.context,
context.hasChanges else {
dismiss(animated: true)
return
}
context.perform {
do {
try context.save()
} catch let error as NSError {
fatalError("Error: \(error.localizedDescription)")
}
self.coreDataStack.saveContext()
}
dismiss(animated: true)
}
}
有关为什么取消功能无法正常工作的建议将不胜感激。