Я поместил одно табличное представление в свой контроллер представления и установил делегата и все. И я использую в tableview подклассе UITableview cell. И я сделал всю часть кодирования. Вот мой код:

Tbaleview.h:

@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;

Tableview.m:

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

Viewvontroller.m

#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

Когда я запускаю свое приложение. в моем представлении таблицы нет даты. Но моя дата json отображается в моем console. Я проверил это. Пожалуйста, помогите мне / что я пропустил. Я новичок в ios. Все, что я пропустил!

Для справки вот мой проект

Но один из моих уже проектов, который получает помощь от SO, работает. Вот этот проект

Но мои проекты не работают

0
david 4 Янв 2016 в 08:22

2 ответа

Лучший ответ

В вашем файле Tableview.xib есть две части дизайна ячеек. Чтобы удалить пустой дизайн и установить другой идентификатор дизайна, это «TableView».

0
Barani 4 Янв 2016 в 05:54

Контрольный список для UIViewController с добавленным вручную UITableView:

  1. Убедитесь, что UITableView правильно инициализирован и добавлен как подпредставление к главному представлению вашего контроллера представления (раскадровке / xib или программно).
  2. Убедитесь, что свойство dataSource табличного представления настроено на ссылку на ваш контроллер представления.
  3. Убедитесь, что вы реализовали метод UITableViewDataSource:

    -tableView:numberOfRowsInSection:

    ... и что он возвращает значение больше нуля.

  4. Убедитесь, что вы реализовали метод UITableViewDataSource:

    -tableView:cellForRowAtIndexPath:

    ... и что вы вернули экземпляр UITableViewCell (или любого его подкласса), полностью сконфигурированный для отображения данных вашей модели.

0
Nicolas Miari 4 Янв 2016 в 05:45