我在视图控制器中放置了一个表视图,并设置了委托和所有。我使用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
但我的项目无效
答案 0 :(得分:0)
UIViewController
的核对清单,手动添加UITableView
:
UITableView
已正确初始化并作为子视图添加到视图控制器的主视图(storyboard / xib或以编程方式)。dataSource
属性设置为引用您的视图控制器。确保您实施UITableViewDataSource
方法:
-tableView:numberOfRowsInSection:
...并返回大于零的值。
确保实现UITableViewDataSource方法:
-tableView:cellForRowAtIndexPath:
...并且您返回完全配置为显示模型数据的UITableViewCell
(或其任何子类)的实例。
答案 1 :(得分:0)
在你的Tableview.xib文件中有两个单元格设计部分。删除空设计并设置另一个设计标识符是&#34; TableView&#34;。