2017-02-02 4 views
0

Я работаю над приложением. У меня есть табличка. Я установил отдельный класс для TableView Cell под названием 'cellTable'. Я использую этот класс в другом имени 'resultViewController' путем импорта файла .h файла. Я объявил,Текст ярлыка 'nil', в отличие от назначения некоторого текста

cellTable *cellElement; 

in 'resultViewControler.h'. Я пытался изменить метку, объявленную в 'cellTable' в 'resultViewController' с помощью

cellElement.resultname.text = testNamesA[indexPath.row]; 

Я получаю 'ноль' для 'cellElement.resultname.text' это, Inspite "testNamesA [indexPath.row] 'имеет некоторое значение. Скриншот показывает точное представление о проблеме, Clarification

Пожалуйста, помогите мне в решении этого ...

+1

Где вы присвоить значение 'cellElement'? Почему у вас даже есть «cellElement»? Почему «cell» не является локальной переменной? Почему вы не задаете свойства 'cell' в вашем методе' cellForRowAtIndexPath'? – rmaddy

+0

Вам нужно создать новую ячейку (путем повторного использования) с помощью 'cellForRowAtIndexPath'. –

+0

Я думаю, что вы пропустили инициализацию cellElement. Так что он идет нулевым. –

ответ

1

Вы устанавливаете свойство ячейки в вашем методе cellForRowAtIndexPath, поэтому не в

cellElement.resultname.text = testNamesA[indexPath.row]; 

это

cell.resultname.text = testNamesA[indexPath.row]; 

Например

#import "yourTableViewCell.h" 

Теперь измените Tableview: cellForRowAtIndexPath к

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

static NSString *cellIdentifier = @"Cell"; 
yourTableViewCell *cell = (SimpleTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 

cell.resultname.text = testNamesA[indexPath.row]; 

return cell; 
} 

Для примера, вы можете пойти here.

+0

Почему «cellElement» не является локальной переменной? – rmaddy

+0

@rmaddy - кто-то меняет ответ –

+0

Это ваш ответ. Не позволяйте людям делать плохие изменения. Почини это. – rmaddy

0

С вашего вопроса, что я понял, вы создали отдельный интерфейс UItableViewCell, и вы импортировали эту ячейку в ViewController. Но вы не знаете, как вызвать и использовать эту настраиваемую ячейку в методах делегата таблицы.

Говорю вам сейчас. После того, как вы импортируете пользовательскую ячейку, вам нужно вызвать приведенные ниже строки кода в методе cellForRowAtIndexPath.

Если вы создаете cellTable с XIb

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    cellTable *cellElement = (cellTable *)[tableView dequeueReusableCellWithIdentifier:@"cell"]; 
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"cellTable" owner:self options:nil]; 
    if(cellElement == nil){ 
     cellElement = nib[0]; 
    } 
    cellElement.resultname.text = testNamesA[indexPath.row]; 
    return cellElement; 
} 
Смежные вопросы