UITableView空白单元格

时间:2013-04-11 04:05:52

标签: ios uitableview

我的故事板看起来像这样:

enter image description here

如您所见,我在MapView下面有一个TableView,然后当我点击搜索栏时会出现另一个TableView。

我的代码:

·H

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>

@interface STLMMeetupLocation  : UIViewController <UITextFieldDelegate, UITableViewDataSource, UITableViewDataSource, MKMapViewDelegate, CLLocationManagerDelegate, UISearchBarDelegate, UISearchDisplayDelegate>
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@property (weak, nonatomic) IBOutlet UISearchBar *searchBar;
@end

的.m

#pragma mark - Table View

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 5;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   if (tableView == self.tableView)
{
    static NSString *cellIdentifier = @"firstTableViewCell";
    UITableViewCell *cell = [tableView
                             dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                      reuseIdentifier:cellIdentifier];
    }
    cell.textLabel.text = @"This is a First Table View cell";
    return cell;
}

else {
static NSString *cellIdentifier = @"searchBarCell";
UITableViewCell *cell = [tableView
                         dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                  reuseIdentifier:cellIdentifier];
}
cell.textLabel.text = @"This is a Search Bar cell";
    return cell;
}

}

我的模拟器第一屏:

enter image description here

我的模拟器第二屏:

enter image description here

为什么我的模拟器第一个屏幕的tableView的cell.textLabel.text空白?不应该有@“这是第一个表视图单元格”;我知道我做的事情很蠢!

3 个答案:

答案 0 :(得分:3)

您的唯一可能原因是您没有连接数据源并正确委托。如果您已经连接但仍然遇到问题,那么只需断开所有连接并再次连接它们即可。这是一个示例图像......

https://www.dropbox.com/s/y51astwgjveeixm/Screen%20Shot%202013-04-11%20at%2010.41.02%20AM.png

而且,你曾经两次使用UITableViewDataSource .... :(

答案 1 :(得分:2)

我拿了你的代码并试了一下。适合我。我认为您已为UISearchBarsearchDisplayController完美地编写和连接。但是,你遗漏了实际的tableView

我建议您快速查看THIS教程。我相信你会很快得到失踪的一点。

一切顺利。

答案 2 :(得分:0)

-(void)viewWillAppear:(BOOL)animated{

   [super viewWillAppear:animated];
   [self.tableView reloadData];

}