2013-04-02 39 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];