我正在XIB
文件中构建我的Section Header View:
这是一个XIB文件,由UISearchBarController
UIView
组成
我在tableViewController中的viewDidLoad
注册:
tableView.register(UINib(nibName: "MessagesSH", bundle: nil), forHeaderFooterViewReuseIdentifier: "MessagesSH")
我在viewForHeaderInSection:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
// Below is the where the app crashes
let headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: "MessagesSH") as? MessagesSH
return headerView
}
当我运行应用程序时,它崩溃了:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'invalid nib registered for identifier (MessagesSH) - nib must contain exactly one top level object which must be a UITableViewHeaderFooterView instance'
答案 0 :(得分:0)
就我而言,我发现你不能在Xib文件中拥有任何类型的控制器(即UIViewController
,UISearchBarController
等)。我不得不使用故事板而不是XIB。