2015-02-27 5 views
0

Я создал пользовательскую таблицу для самой простой. Я сделал контроллер панели.Невидимый текст ярлыка в UITableView

FoglalasTableViewCell.h

@interface FoglalasTableViewCell : UITableViewCell 
 

 
@property (weak, nonatomic) IBOutlet UILabel *datumLabelFoglalas; 
 
@property (weak, nonatomic) IBOutlet UILabel *adminNevekLabelFoglalas; 
 

 
@end

FoglalasTableViewCell.m

#import "FoglalasTableViewCell.h" 
 

 
@implementation FoglalasTableViewCell 
 

 

 
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
 
{ 
 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
 
    if (self) { 
 
     // Initialization code 
 
    } 
 
    return self; 
 
} 
 

 
- (void)awakeFromNib 
 
{ 
 
    // Initialization code 
 
} 
 

 
- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
 
{ 
 
    [super setSelected:selected animated:animated]; 
 
    
 
    // Configure the view for the selected state 
 
} 
 

 
@end

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
 
{ 
 
    static NSString *CellIdent = @"foglalas"; 
 
    
 
    FoglalasTableViewCell *Cellw = [tableView dequeueReusableCellWithIdentifier:CellIdent]; 
 
    
 
    if (!Cellw) { 
 
     Cellw = [[FoglalasTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdent]; 
 
     // Cellw = [[FoglalasTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdent]; 
 
    } 
 
    
 
    if (Cellw.backgroundView == nil) { 
 
    
 
     if ([foglaltArr[indexPath.row] isEqual: @0]) { 
 
      [Cellw setBackgroundColor:[UIColor greenColor]]; 
 
     } else if ([foglaltArr[indexPath.row] isEqual: @1]) { 
 
      [Cellw setBackgroundColor:[UIColor redColor]]; 
 
     } 
 
    } 
 
    
 
    NSLog(@"%d. foglaltArr : %@",indexPath.row, [foglaltArr objectAtIndex:indexPath.row]); 
 

 
    NSLog(@"%d orakArr %@",indexPath.row,orakArr[indexPath.row]); 
 

 
    Cellw.datumLabelFoglalas.text = [foglaltArr objectAtIndex:indexPath.row]; 
 
    Cellw.adminNevekLabelFoglalas.text = @"blah.."; 
 

 
    return Cellw; 
 
    
 
}

Я подключен источник данных. Он изменил цвет фона ячеек. Но эти метки не получают источники данных. Я не понимаю, зачем получить исходный фон, и метки почему бы не получить !? Я не знаю, как его решить. Пожалуйста, помогите мне.

! [Источник виден фон] [1]

ответ

1

Проблема здесь (я предполагаю, что вы не используете прототип клетки)

Cellw = [[FoglalasTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdent]; 

Вы не загружаете XIB здесь вы просто создавая FoglalasTableViewCell объект, который имеет datumLabelFoglalas и adminNevekLabelFoglalas как nil

использование

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"FoglalasTableViewCell" owner:nil options:nil]; 
Cellw = [nib objectAtIndex:0]; 

Для справки можно проверить this tutorial


Edit: Для ProType ячейки, изменить имя класса и идентификатор ячейки в раскадровке и использовать метод ниже

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

    FoglalasTableViewCell *Cellw = [tableView dequeueReusableCellWithIdentifier:CellIdent]; 

    if (Cellw.backgroundView == nil) { 

     if ([foglaltArr[indexPath.row] isEqual: @0]) { 
      [Cellw setBackgroundColor:[UIColor greenColor]]; 
     } else if ([foglaltArr[indexPath.row] isEqual: @1]) { 
      [Cellw setBackgroundColor:[UIColor redColor]]; 
     } 
    } 

    NSLog(@"%d. foglaltArr : %@",indexPath.row, [foglaltArr objectAtIndex:indexPath.row]); 

    NSLog(@"%d orakArr %@",indexPath.row,orakArr[indexPath.row]); 

    Cellw.datumLabelFoglalas.text = [foglaltArr objectAtIndex:indexPath.row]; 
    Cellw.adminNevekLabelFoglalas.text = @"blah.."; 

    return Cellw; 
} 
+0

Спасибо учебник, но не решить мои проблемы, пожалуйста, смотрите мою ошибку log: Завершение приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «Не удалось загрузить NIB в пакете:« NSBundle (загружен) 'с именем' FoglalasTableViewCell '' Я использую раскадровку. – bolo

+0

Вы используете раскадровку, и, возможно, вы создаете ячейку в раскадровке, которая называется прототипом. –

+0

Я отредактировал свой ответ, пожалуйста, следуйте этому. –

1

я бы объявите свойства как nonatomic, strong. Также я бы synthesize их.

Также проверьте, что вы связали элементы с вашим видом.

наконец просто вызовите перо

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

Что такое MasterCell? Этот класс? – bolo

+0

@bolo извините, я скопировал это из блока проекта, в котором я работал. Я отредактировал его на 'FoglalasTableViewCell' – cobolero

+0

Спасибо, ваша скорость. Что такое ошибка? Пожалуйста, смотрите: Завершение приложения из-за неотображенного исключения «NSInternalInconsistencyException», причина: «Не удалось загрузить NIB в пакете:« NSBundle (загружен) 'с именем FoglalasTableViewCell' ' – bolo

0

В main.storyboard выберите вид ячейку таблицы и заполнить поля Identifier «Foglalás»

+0

Спасибо, я подключил уже – bolo