Ячейка TalbeView, показывающая нулевое значение - PullRequest
1 голос
/ 25 августа 2011

Я создал пользовательскую таблицу для rootViewController приложения с разделенным видом, чтобы выбранная строка расширялась и отображалась в качестве вложенной таблицы (показывающей главное меню и вложенное меню). В первой строке вложенной таблицы должен отображаться конкретный элемент главного меню вложенной таблицы. Я выбираю основные пункты меню из другого класса.

Проблема в том, что в первой строке вложенной таблицы для меня пусто. Используя NSLog, я проверил значение переменной непосредственно перед тем, как присвоить ее ячейке, и даже после присвоения значения ячейке, я проверил текст значение в ячейке, используя cell.textLabel.text. Я получаю значение в консоли каждый раз, но строка все еще пуста !!!

Строка показывает значение, если я жестко кодирую его любым значением !!!

Примечание: TableView показывает значения для оставшихся строк.

Кто-нибудь может мне помочь ?? Заранее спасибо ... и извините за мой плохой английский ..

РЕДАКТИРОВАТЬ: В rootViewController:

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    tableView.separatorColor=[UIColor grayColor];

    if (sectionopen[indexPath.row]) {
        accordianTable *cell1;
        cell1=(accordianTable *)[tableView dequeueReusableCellWithIdentifier:@"cell1"];

        if (cell1 == nil) {
            cell1 = [[[accordianTable alloc] initWithFrame:CGRectZero reuseIdentifier:@"cell1"] autorelease];
        }

        cell1.selectionStyle=UITableViewCellSelectionStyleNone;

        return cell1;
    } else {
    //tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
    static NSString *CellIdentifier = @"CellIdentifier";

    // Dequeue or create a cell of the appropriate type.
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

        cell.selectionStyle = UITableViewCellSelectionStyleGray;
    }
    // Configure the cell.
    cell.textLabel.text=[UIAppDelegate.mainMenu objectAtIndex:indexPath.row];

    return cell;
    }    
}

(void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    accordianTable *acc = [[accordianTable alloc]init];
    acc.titl=[UIAppDelegate.mainMenu objectAtIndex:indexPath.row];

    [acc.subTable reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
    ///turn them all off
    sectionopen[0]=NO;
    sectionopen[1]=NO;
    sectionopen[2]=NO;
    sectionopen[3]=NO;

    ///open this one
    sectionopen[indexPath.row]=YES;

    ///animate the opening and expand the row
    [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];

    UIViewController  *localdetailViewController = nil;
}

В пользовательском классе ячеек (accordianTable):

(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Number of rows is the number of time zones in the region for the specified section.
    return [UIAppDelegate.subMenu count]+1;//including title and sub menu
}

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *MyIdentifier = @"MyIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] autorelease];
    }

    switch (indexPath.row)
    {
        case 0:
            NSLog(@"text is   >>  %@",titl);
            cell.textLabel.text=titl;
            NSLog(@"text is   >>  %@",cell.textLabel.text);
            cell.textLabel.textColor=[UIColor whiteColor];
            cell.contentView.backgroundColor=[UIColor blackColor];
            cell.textLabel.backgroundColor=[UIColor blackColor];
            cell.selectionStyle=UITableViewCellSelectionStyleNone;
            break;            
        default:
            int Row=indexPath.row;
            Row--;
            cell.textLabel.text=[UIAppDelegate.subMenu objectAtIndex:Row];
            cell.textLabel.textColor=[UIColor orangeColor];
            cell.textLabel.textAlignment=UITextAlignmentCenter;
            cell.selectionStyle=UITableViewCellSelectionStyleNone;
            break;
    }
    return cell;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...