我有一个自定义UITableViewCell,它扩展了UITableViewCell并实现了MFMailComposeViewControllerDelegate。(即UITableViewCell<MFMailComposeViewControllerDelegate>)。
当在自定义表单元格中单击按钮时,我将显示一个带有mailController的presentModalViewController。然后用户可以键入电子邮件或取消,一切正常。
但是当didReceiveMemoryWarning在mailController出现时被调用时,当mailController关闭时,应用程序就会崩溃。我知道这个错误:
"-CustomCell respondsToSelector::message发送给解除分配的实例0xf4988b0“
现在,我很确定这是因为拥有桌筒的表视图已经被取消了,因此单元格已经被取消了,但是有谁有任何建议来解决这个问题呢?我的意思是,我想我可以将MailCompose委托切换到表单元格的表视图的视图控制器,但我不想。我宁愿把它放在桌子的牢房里。有什么想法吗?
发布于 2012-08-23 19:19:41
您不应该使用表视图单元格作为MFMailComposeViewControllerDelegate。由于单元的性质和它们的重用性,很难将特定实例定位为委托,特别是在显示单元格的视图控制器之上的视图控制器的委托,而在这种特殊情况下,内存警告可能会导致单元格缓存的刷新。
MFMailComposeViewControllerDelegate应该是单元格所在的表视图的委托。它也是一个更好的MVC模式。
https://stackoverflow.com/questions/12098465
复制相似问题