2013-12-24 2 views
3

Я разбираю JSON и сохраняю его в массиве. У меня есть пользовательский кластерный подкласс, в котором я пытаюсь установить заголовок метки из содержимого разбора JSON. Это процесс синтаксического анализа.Как установить имя ячейки таблицы в ios?

@implementation BlogScreenViewController  
- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
    self.jsonArray = [[NSMutableArray alloc]init]; 

NSError *error = nil; 
NSURL *url = [NSURL URLWithString:@"http:web_services/blog.php"]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 
self.jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; 
for (NSDictionary *obj in self.jsonArray)  
{ 
    NSLog(@"JSON string output :- %@ ", [obj objectForKey:@"titre"]); // shows titles 
} 

В пользовательских подкласса клеток

// set blog title label 
    UILabel *blogTitleLabel = [[UILabel alloc]initWithFrame:CGRectMake(60, 20, 200, 20)]; 
    // blogTitleLabel.text = @"This is blog title"; // This shows properly if used. 

    for (NSDictionary *obj in blogScreenVC.jsonArray) //This doesn't work. 
    { 
     blogTitleLabel.text = [NSString stringWithFormat:@"%@",[obj objectForKey:@"titre"]]; 
    } 
    [blogTitleLabel setFont:[UIFont systemFontOfSize:9]]; 
    [self addSubview:blogTitleLabel]; 
+0

, что вопрос вы столкнулись в этом .. –

+1

места вашего вопроса ясно? Заголовок вопроса о заголовке tableview. Но в вашем вопросе тело расскажет о названии клетки? текст некоторое описание четко. – Mani

+0

Дайте пользовательской метке ячеек obj как свойство, синтезируемое в пользовательском классе ячейки, используя obj в методах делегата в виде таблицы. – Romance

ответ

3

Вместо установки lebel.text в классе customcell добавить его в cellForRowAtIndexPath.

Создать свойство ярлыка в customcell.h файле

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

И в customcell.m СИНТЕЗ файлов это.

@synthesize label = _label; 

И в вас viewcontroller.m файл

#import "CustomCell.h" 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *simpleTableIdentifier = @"CustomCell"; 

    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 
    if (cell == nil) 
    { 
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil]; 
     cell = [nib objectAtIndex:0]; 
    } 

    if (self.jsonArray.count !=0) { 
     NSMutableDictionary * tmpDictn = [self.jsonArray objectAtIndex:indexPath.row]; 
     if ([tmpDictn objectForKey:@"titre"] != nil) 
     { 
      cell.label.text = [tmpDictn objectForKey:@"titre"]; 
     }else{ 
      cell.label.text = @"tmpDictn does not contain data"; 
     } 
    }else{ 
      cell.label.text = @"jsonArray does not contain data"; 
    } 

    return cell; 
} 
Смежные вопросы