使用 tableviewheader 中的 UITextField 在 self.view.endEditing 上崩溃

Posted

技术标签:

【中文标题】使用 tableviewheader 中的 UITextField 在 self.view.endEditing 上崩溃【英文标题】:Crash on self.view.endEditing with UITextField in tableviewheader 【发布时间】:2016-11-13 13:42:32 【问题描述】:

当我拨打self.view.endEditing(true) 时,我遇到了非常罕见的崩溃。大约 0.3% 的用户受到影响。我无法在自己的设备上重现崩溃。无论如何,我想修复它。

我有一个 UITableView,它在 tableviewheader 中包含一个 UITextfield,我在 viewDidLoad() 中设置。我对 UITextfield 有强烈的参考。我还在 deinit 中将代理设置为 nil。

当用户点击一行时,我调用 self.view.endEditing() 并且应用程序崩溃并显示 EXC_BREAKPOINT。 该应用程序在崩溃时处于焦点。崩溃主要发生在 iPhone 5、5c、5s 和 6 上(大约 80%)

我也尝试resignFirstResponder 处理同样的问题,还在调用 resignFirstResponder 之前验证文本字段是否不为零。

【问题讨论】:

尝试在 Storyboard 中检查 IBOultet 连接 【参考方案1】:

感谢@Vinodh,我在 Storyboard 中检查了我的 ViewController。仍然有与 SearchViewController 的连接,但我已停止使用。删除连接让我摆脱了这次崩溃。

【讨论】:

以上是关于使用 tableviewheader 中的 UITextField 在 self.view.endEditing 上崩溃的主要内容,如果未能解决你的问题,请参考以下文章

使用“tableView:sectionForSectionIndexTitle:atIndex:”帮助滚动到 TableViewHeader?

如何在具有缩放填充模式的 tableViewHeader 中为 UIImageView 使用固定高度?

将文本字段添加到 tableviewheader

在 TableViewHeader 中以编程方式调用 IBAction

非滚动tableViewHeader

UITableView 的 tableViewHeader 和 tableViewCells 重叠,直到调用 reloadData