我正在制作类似 facebook 应用程序的左面板搜索功能。我有两个 UITableViewControllers。当用户点击 UISearchBar 以显示搜索结果时,我从其中一个中取出一个 tableView 并将其放在另一个之上。当我创建第二个 UITableViewController 时,我告诉它,它的分隔符样式在 ViewDidLoad 方法中将是 none:
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
然后,在我将它的tableView 放在第一个UITableViewController 的视图上方之后,它一开始是空的,因为还没有向UISearchBar 输入数据。并且没有任何分隔符。但是,当用户输入任何字母并且表格数据有一些记录时,分隔符样式将恢复为默认样式(白线)。
因此,由于某种原因,我的第二个控制器忘记了分隔符样式应该是什么,并在再次重新加载表格视图分隔符后显示。What can be the reason?
编辑:这就是我创建第二个 UITableViewController 并将它的 tableView 放在第一个控制器的视图上的方式:
- (UIView *)searchResultsView
{
if (! _searchResultsView) {
_searchResultsView = self.searchResultsViewController.tableView;
_searchResultsView.frame = CGRectMake(0, 44, 320, self.view.frame.size.height-44);
}
return _searchResultsView;
}
- (SearchResultsViewController *)searchResultsViewController
{
if (! _searchResultsViewController) {
_searchResultsViewController = [[SearchResultsViewController alloc] init];
_searchResultsViewController.searchBar = _searchBar;
}
return _searchResultsViewController;
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
[self.view addSubview:self.searchResultsView];
}
截屏:
当表格视图没有数据时,它是这样的:
如您所见,没有分隔符。
当有数据时,这就是它的外观。我已删除单元格内容。如您所见,有白色分隔符。