我的tableview中没有显示数据

时间:2016-01-04 05:22:48

标签: ios objective-c iphone uitableview

我在视图控制器中放置了一个表视图,并设置了委托和所有。我使用tableview的{​​{1}}子类。我做了所有编码部分。这是我的代码:

Tbaleview.h:

UITableview cell

Tableview.m:

@interface TableView : UITableViewCell

@property (weak, nonatomic) IBOutlet UILabel *lab1;

@property (weak, nonatomic) IBOutlet UILabel *lab2;


@property (weak, nonatomic) IBOutlet UILabel *lab3;
@property (weak, nonatomic) IBOutlet UIButton *checkBtn;

Viewvontroller.m

@implementation TableView
@synthesize lab1 = _lab1;
@synthesize lab2 = _lab2;
@synthesize lab3 = _lab3;
@synthesize checkBtn;

当我运行我的应用程序时。我的桌子视图中没有显示日期。但是我的json日期显示在#import "sViewController.h" #import "TableView.h" @interface sViewController () <UITableViewDataSource,UITableViewDelegate> @end @implementation sViewController { NSMutableArray *cells_Array; NSArray *jsonObject; int selectedIndex; } - (void)viewDidLoad { [super viewDidLoad]; cells_Array = [[NSMutableArray alloc] init]; selectedIndex = -1; // Do any additional setup after loading the view, typically from a nib. //NSArray *jsonObject; jsonObject = @[ @{ @"partner": @"50", @"gamer": @"199", @"pointer": @"144" }, @{ @"partner": @"80", @"gamer": @"112", @"pointer": @"11" }, @{ @"partner": @"30", @"gamer": @"112", @"pointer": @"14" }, @{ @"partner": @"50", @"gamer": @"100", @"pointer": @"199" }, @{ @"partner": @"50", @"gamer": @"19", @"pointer": @"44" }, @{ @"partner": @"2000", @"gamer": @"500", @"pointer": @"1000" } ]; NSError *err; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonObject options:NSJSONWritingPrettyPrinted error:nil]; NSString * jsonString=[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"%@",jsonString); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { [cells_Array removeAllObjects]; return [jsonObject count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"TableView"; TableView *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil]; cell = [nib objectAtIndex:0]; } cell.lab1.text = [jsonObject objectAtIndex:indexPath.row][@"gamer"]; cell.lab2.text = [jsonObject objectAtIndex:indexPath.row][@"partner"]; cell.lab3.text = [jsonObject objectAtIndex:indexPath.row][@"pointer"]; if(indexPath.row == selectedIndex) { [cell.checkBtn setSelected:true]; } [cells_Array addObject:cell]; return cell; } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 78; } -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { for (TableView *view in cells_Array ) { [view.checkBtn setSelected:false]; } TableView *cellView = [self.containerTableView cellForRowAtIndexPath:indexPath]; selectedIndex = (int)indexPath.row; [cellView.checkBtn setSelected:true]; } @end 。我查了一下。请帮助我/我错过了什么。我是ios的新手。我错过了什么!

我的project

供您参考

但是我的一个项目已经得到SO的帮助。这就是project

但我的项目无效

2 个答案:

答案 0 :(得分:0)

UIViewController的核对清单,手动添加UITableView

  1. 确保UITableView已正确初始化并作为子视图添加到视图控制器的主视图(storyboard / xib或以编程方式)。
  2. 确保将表格视图的dataSource属性设置为引用您的视图控制器。
  3. 确保您实施UITableViewDataSource方法:

    -tableView:numberOfRowsInSection:

    ...并返回大于零的值。

  4. 确保实现UITableViewDataSource方法:

    -tableView:cellForRowAtIndexPath:

    ...并且您返回完全配置为显示模型数据的UITableViewCell(或其任何子类)的实例。

答案 1 :(得分:0)

在你的Tableview.xib文件中有两个单元格设计部分。删除空设计并设置另一个设计标识符是&#34; TableView&#34;。