2013-04-02 42 views
1

我正在做类似Facebook应用程序的左侧面板搜索功能。我有两个UITableViewControllers。当用户点击UISearchBar以显示搜索结果时,我从其中一个获取tableView并将其放在另一个之上。当我创建第二个的UITableViewController,我知道的,它的分隔符样式将是没有在viewDidLoad方法:UITableViewCell分隔符风格不变

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]; 
} 

截图:

这是它的外观,当有为表视图没有数据:

enter image description here

正如你看到的,没有分隔符。

这就是它在有数据时的样子。我删除了单元格内容。如你所见,有白色的分隔符。

enter image description here

+0

是 “的tableView” 是UITabViewController的对象? – NSUserDefault

+0

这是第二个UITableViewController的对象,它放在第一个UITableViewController的视图之上,当用户想要搜索某些东西时。他不在相同的表格数据中搜索。这就是为什么我使用另一个表视图控制器。这一切看起来像Facebook应用程序的搜索它左侧面板。 – wzbozon

+0

@wzbozon你可以展示你的代码以及你试图实现的屏幕截图吗? – Rushi

回答

0

问题是,我用UISearchController,它创造它自己的tableView。所以我甚至有3个tableViews在那里。在我删除了UISearchController并且它是委托方法后,所有事情都开始工作了。现在我从UISearchBar中取出一个字符串并将它传递给我的第二个UITableViewController。那里不需要UISearchController。

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    NSString *searchString = [_searchBar.text stringByReplacingCharactersInRange:range withString:text]; 
    self.searchResultsViewController.searchString = searchString; 

    return YES; 
} 

而我在第二UITableViewController中使用自定义的制定者搜索字符串:

- (void)setSearchString:(NSString *)searchString 
{ 
    _searchString = searchString; 

    [self filterContentForSearchText:searchString]; 

    [self.tableView reloadData]; 
} 
0

尝试用self.tableView.separatorColor = [UIColor clearColor];