我实现了一个子视图,当表中没有项目时,它显示在UITableViewController的表视图上。添加项目后,子视图将从superview中删除以显示tableview,但单元格已变得不可选择。此外,点击编辑按钮后作为导航项目显示的左侧删除圆圈按钮对点击没有响应。
有趣的是,左击可以删除作品。然后向左滑动以显示删除框,然后按下该框即可。真是奇怪的行为。这就是我所拥有的:
override func viewDidLoad() {
super.viewDidLoad()
if fetchedResultsController.fetchedObjects!.count == 0 {
let noDataScreen = EmptyTableView.init(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height))
view.addSubview(noDataScreen)
}
func itemSearchViewController(_ controller: ItemSearchViewController, didFinishAdding item: Item) {
if fetchedResultsController.fetchedObjects!.count != 0 {
if let viewWithTag = self.view.viewWithTag(1000) {
viewWithTag.removeFromSuperview()
}
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
tableView.dataSource = self
tableView.delegate = self
tableView.reloadData()
}
我尝试了以下代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.becomeFirstResponder()
if fetchedResultsController.fetchedObjects!.count != 0 {
if let viewWithTag = self.view.viewWithTag(1000) {
viewWithTag.resignFirstResponder()
viewWithTag.removeFromSuperview()
}
self.view.isUserInteractionEnabled = true
self.navigationItem.leftBarButtonItem?.isEnabled = true
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.view.becomeFirstResponder()
}
还是没有用。在superview上添加子视图会影响tableView的触摸功能,而tableView是UITableViewController的一部分。任何想法都将不胜感激。