2013-04-02 4 views
1

Я делаю что-то вроде функции поиска левой панели в facebook. У меня два UITableViewControllers. Я беру tableView из одного из них и ставил его над другим, когда пользователь нажимает на UISearchBar, чтобы показать результаты поиска. Когда я создаю этот второй UITableViewController, я говорю, что это стиль сепаратора не будет ни в методе ViewDidLoad:UITableViewCell Separator Стиль не изменяется

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 

А потом, после того, как я поставил это Tableview выше первого взгляда UITableViewController, он пуст на первом, так как нет данные еще введены в UISearchBar. И никаких разделителей нет. Но тогда, когда пользователь вводит какую-либо букву, а данные таблицы имеют некоторые записи, стиль разделителя возвращает значение по умолчанию (белые линии).

Итак, по какой-то причине мой второй контроллер забывает, каков должен быть стиль разделителя и отображать после перезагрузки разделителей табличного вида снова. What can be the reason?

Edit: Это, как я создаю мой второй 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 таблицы. После того как я удалил 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; 
} 

И я использую пользовательский сеттер для SearchString во втором UITableViewController:

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

    [self filterContentForSearchText:searchString]; 

    [self.tableView reloadData]; 
} 
0

Попробуйте с self.tableView.separatorColor = [UIColor clearColor];