0

テーブルが表示されるたびに更新されたデータを取得するためUItableviewに使用すると、例外が発生するという問題があります。viewWillAppear

が呼び出されるviewWillAppear前に更新されるように、テーブルビューを更新する方法を教えてください。CellforrowAtindexPath

これが私のコードですviewWillAppear

-(void)viewWillAppear:(BOOL)animated
{

     [super viewWillAppear:YES];
     [self.tableView reloadData];//table was filled in viewDidLoad.

}

ここに CellforrowAtindexPath` があります: (例外は mainArray にあります。これは、 viewWillAppear を介してテーブルを更新し、 cell を呼び出すときに競合があることを意味します):

//Methods to retrive all selected words , thier sound and picture for the mother
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifer = @"Cell";
    UITableViewCell *cell= [ tableView dequeueReusableCellWithIdentifier:CellIdentifer];

    cell.textLabel.font = [UIFont systemFontOfSize:17.0];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                      reuseIdentifier:CellIdentifer];
    }
    cell.textLabel.font = [UIFont systemFontOfSize:17.0];
    UILabel *label ;

    label=(UILabel *)[cell viewWithTag:1];

    NSString *value = [[self.mainArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
    label.text = value;
    label.textAlignment=NSTextAlignmentRight;
    label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;

    //self.tableView.separatorColor = [UIColor blackColor];TRY TO SEPARETE BETEWEEN LINES OF TABLE
    UIButton *butt =(UIButton *)[cell viewWithTag:2];
    NSString *value2 = [[self.mainArray2 objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
    butt.restorationIdentifier= value2;
    [butt addTarget:self action:@selector(play:) forControlEvents:UIControlEventTouchUpInside];

    NSString *value3 = [[self.mainArray3 objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
    cell.imageView.image = [UIImage imageNamed:value3];
    label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;

    return cell;
}
4

1 に答える 1