Ios reloadRowsAtIndexPaths中崩溃:尝试删除包含拒绝辞职的第一响应者的行

Ios reloadRowsAtIndexPaths中崩溃:尝试删除包含拒绝辞职的第一响应者的行,ios,objective-c,swift,uitableview,ipad,Ios,Objective C,Swift,Uitableview,Ipad,我被这个错误难住了。首先,代码是swift,而不是objective C。我使用的是UITableView,当选中时,单元格可以用其他子视图展开。当我选择一个单元格时,它会展开。当我选择另一个单元格时,第一个单元格收缩,新选定的单元格展开。这一切都很好。代码使用以下命令: super.viewTable!.reloadRowsAtIndexPaths(cellsToUpdate, withRowAnimation: UITableViewRowAnimation.Fade) 问题是,当按下时,

我被这个错误难住了。首先,代码是swift,而不是objective C。我使用的是UITableView,当选中时,单元格可以用其他子视图展开。当我选择一个单元格时,它会展开。当我选择另一个单元格时,第一个单元格收缩,新选定的单元格展开。这一切都很好。代码使用以下命令:

super.viewTable!.reloadRowsAtIndexPaths(cellsToUpdate, withRowAnimation: UITableViewRowAnimation.Fade)
问题是,当按下时,扩展单元格中的一个子视图可能会弹出UIAlertController。如果我弹出此UIAlertController并取消它,使其消失,那么当我按下表中的任何其他单元格时,应用程序会因以下错误而崩溃:

Assertion failure in -[UITableView _updateWithItems:updateSupport:], 
/SourceCache/UIKit_Sim/UIKit-3347.44.2/UITableView.m:2924
2015-10-05 15:59:32.276 MyAppName[46504:1975727] *** Terminating app due 
to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempt 
to delete row containing first responder that refused to resign'
换句话说,除非我在扩展单元格中弹出警报,否则一切正常。不幸的是,我不得不在扩展的单元格中弹出警报,使程序变得有用。所以我需要解决这个问题,但不知道如何解决。我怎样才能强迫那些在扩展单元中保持第一响应者状态的人放弃它?我怎么知道第一反应者是什么?我试着称之为恩迪丁(真的)和类似的事情。我没有UITextView作为任何地方的子视图,所以这不是问题所在。有没有办法解决这个问题

我对如何在调用reloadRowsAtIndexPaths之前调用reloadData()持开放态度。到目前为止,一切都不起作用

更新:猜猜看。UIAlertController中可能有一个bug,因为当我用UIAlertView替换所有UIAlertController代码时,一切正常,没有崩溃。不知何故,UIAlertController在某个地方搞乱了一些第一响应者,所以它现在拒绝释放第一响应者状态。使用UIALertViewDelegate等,UIAlertView的设置有点烦人,但至少它可以正常工作而不会崩溃


但这仍然回避了一个问题,UIAlertController中会出现什么问题?

您是否尝试过
self.view.endEditing(true)
?是的,我尝试过。没有帮助。