2015-05-01 2 views
-1

У меня есть customTableViewCell, что я пытаюсь установить изображение и некоторый текст. Ячейка создана успешно, но свойствами являются nil. Я не уверен, есть ли что-то, чего я не вижу в .xib, но я просто не могу понять это. Розетки устанавливаются в .h в customViewCell и подключены в .xibСвойства CustomTableViewCell не установлены (они ноль)

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *cellIdentifier = @"socialMediaCell";  

    CustomSocialMediaTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

    CustomSocialMediaTableViewCell *tagCell = (CustomSocialMediaTableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"socialMediaCell"]; 

    if (cell == nil) { 

     cell = [[CustomSocialMediaTableViewCell alloc] 
     initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 

     tagCell = [[CustomSocialMediaTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
    } 

    NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"socialPosts"]; 

    UIImage* image = [UIImage imageWithData:imageData]; 

    cell.socialMediaTextView.text = @"TEXT"; 

    cell.socialMediaImageView.image = image; 

    return cell; 
} 
+0

макияж убедитесь, что ваши магазины @Property .. –

+0

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

+1

cellIdentifier = @ "socialMediaCell" ИЛИ cellIdentifier = @ "CustomSocialMediaTableViewCell"? –

ответ

0

Вы ссылаетесь тем же CustomTableViewCell дважды, а затем вы направляете вещи его:

static NSString *cellIdentifier = @"socialMediaCell";  

****Declared once here**** 
CustomSocialMediaTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

****Declared a second time here*** 
CustomSocialMediaTableViewCell *tagCell = (CustomSocialMediaTableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"socialMediaCell"]; 

Использовать первый объявленный cell и удалять второй.

Тогда вы говорите , если ячейка пуста, введите ее, и вы сделали это дважды. Сделайте это один раз.

if (cell == nil) { 

    cell = [[CustomSocialMediaTableViewCell alloc] 
    initWithStyle:UITableViewCellStyleDefault]; 
} 

Тогда вы можете добавить и назначить нужные вам вещи.

У меня такое чувство, что вы, возможно, пытались сделать это более сложным способом с помощью современных методов, создав для этого .xib, когда вы можете просто выбрать TableViewCell в своем раскадровке и установить его класс. Затем вы можете ctrl + перетащить из UILabel и UIImage в ваш .h-файл.

Если вы не хотите, чтобы это сделать, или не структурированы это таким образом гарантировать, что ваши ссылки UILabel и UIImage подключены правильно и что вы объявлен IBOutlet для обоих - вот так

@property (nonatomic, weak) IBOutlet UILabel * customText; 
+0

Я просто объявил две отдельные переменные, чтобы показать разные способы, которыми я пытался сделать это без успеха. Да, у меня есть отдельный .xib для моего CustomCell, но в любом случае все еще запутывает меня, почему ячейка создается, но свойства - nil @SASmith –

0

Edit внутри if (cell==nil) на коде ниже

if (cell == nil) { //Check cell is nil or not 


    NSArray *nib; 
    nib = [[NSBundle mainBundle] loadNibNamed:@"CustomSocialMediaTableViewCell" 
               owner:self options:nil]; //if cell is nil add CustomSocialMediaTableViewCell Xib 

    for (id oneObject in nib) if ([oneObject isKindOfClass:[CustomSocialMediaTableViewCell class]]) 
       cell = (CustomSocialMediaTableViewCell *)oneObject; 

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