2013-12-11 186 views
0
  • 我有一個包含自定義單元格的UITableView。一切正常。但之後,我決定添加一個searchBar以便...搜索!包含自定義單元格的UITableView的UISearchBar =>空白單元格

  • 所以,我從增加了「搜索欄和搜索顯示控制器」「對象庫」我在廈門國際銀行文件,該UITableView的下。

  • 我創建的自定義單元格的特定類:

    「CustomCell.h」

    @class CustomCell; 
    
    @interface CustomCell : UITableViewCell 
    { 
    } 
    
    @property (weak, nonatomic) IBOutlet UILabel *lblDate; 
    @property (weak, nonatomic) IBOutlet UILabel *lblAuteur; 
    
    @end 
    

    「CustomCell.m」

    no interesting stuff 
    

    「CustomCell .xib「

    enter image description here

  • 「事件」類:

    @interface Event : NSObject 
    { 
    } 
    
    @property (strong, nonatomic) NSString *desc; 
    @property (strong, nonatomic) NSString *dateCreation; 
    
    @end 
    
  • 和包含的UITableView的UISearchBar的觀點:

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
        static NSString *cellIdentifier = @"cell"; 
    
        // Determinate the current event 
        Event *currentEvent; 
        if (tableView == self.searchDisplayController.searchResultsTableView) 
         currentEvent = [filteredArray objectAtIndex:indexPath.row]; 
        else 
         currentEvent = [notFilteredArray objectAtIndex:indexPath.row]; 
    
        CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    
        if(cell == nil) 
         cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
    
        cell.lblAuteur.text = [currentEvenement desc]; 
        cell.lblDate.text = [currentEvenement dateCreation]; 
    
        return cell; 
    } 
    
  • 好了,現在我們可以ñ來到我的問題。加載tableView後,自定義單元格顯示良好。但如果我使用搜索欄

    1. 如果與遞減屬性等於「富」一個事件,如果我在搜索欄進入「酒吧」,我得到「沒有結果」消息。這是正常的。
    2. 如果與desc的事件屬性等於「富」,如果我在搜索欄輸入「富」,細胞被顯示,但不其內容!我只看到單元格的邊框,並且lblDatelblAuteur等於

爲什麼我這種行爲?非常感謝您的幫助......我確定filteredArraynotFilteredArray正確填充(我多次檢查過)。這意味着搜索機制運行良好。

回答

0

對不起,人們尋找到解決這個問題......我 無法修復它,與總承包人不想要這個功能了,所以我放棄了。

0

檢查這些設置,如果沒有

self.searchDisplayController.searchResultsDelegate =自我; self.searchDisplayController.searchResultsDataSource = self;

試試這個,

+0

我已經完成了**「搜索顯示控制器」**和**「文件所有者**」之間的Interface Builder鏈接。無論如何,我試圖把這兩行放入viewDidLoad方法,但問題仍然存在... –

7

經過多次「搜索」(雙關)後,我發現問題。

當您使用原型單元格引用tableview時,不能依賴傳入的tableview,因爲有時該tableview是沒有原型單元格的搜索tableview。

所以不是...

HomeTabCell *cell = (HomeTabCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

代替上面直接連接到表視圖與原型細胞

HomeTabCell *cell = (HomeTabCell *)[self.HomeTableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

希望這有助於「實現代碼如下」!

+0

感謝您的回答。如果我再次需要這個功能,我會讓你聯繫。 –

+0

很好,這個工作... – ATOzTOA