Проблема с UITableView - обновление значений таблицы - PullRequest
0 голосов
/ 09 мая 2011

Я новичок. Я написал некоторый код для UITable, но я не могу обновить значения таблицы после добавления значений в массив. Я использую tableview подкласс. Код выглядит следующим образом. Проверьте последнюю функцию. Теперь, как я могу обновить значения в моей таблице?

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
//#warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//#warning Incomplete method implementation.
    // Return the number of rows in the section.
    return [_phones count];
}

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
    }

       HLPFoundPhones *p = (HLPFoundPhones *)[_phones objectAtIndex:indexPath.row];
       NSString *subtitle = [NSString stringWithFormat:@"Found (%1.2f,%1.2f) on %@" ,[p loc].x, [p loc].y , [p foundDate]];
       cell.textLabel.text = [p name];
       cell.detailTextLabel.text = subtitle;

       return cell;
}


- (void)insertNewObject
{
    HLPPhonesAdd *view = [[HLPPhonesAdd alloc]initWithNibName:@"HLPPhonesAdd" bundle:nil];
    [self.navigationController pushViewController:view animated:YES];
    [view release];

   }
- (void)updateTable:(CGPoint)loc name:(NSString *)_name{
    HLPFoundPhones *a = [[HLPFoundPhones alloc]initWithLoc:loc name:_name];
    [_phones addObject:a];
    [phones reloadData];

}

Ответы [ 4 ]

0 голосов
/ 12 октября 2012

Прежде всего, ваш идентификатор ячейки выглядит одинаковым для всех ячеек, что может сбить iOS с толку, какую ячейку нужно снять с очереди. Так что держите ваши идентификаторы ячеек уникальными, как показано ниже:

NSString *cellIdentifier = [NSString stringWithFormat:@"Cell-%d", indexPath.row];

затем, после первого просмотра таблицы, обновите ваш источник данных и позвоните:

[tableView reloadData];
0 голосов
/ 09 мая 2011

проверить значение счетчика _phone и использовать в функции

- (void)updateTable:(CGPoint)loc name:(NSString *)_name
{
    HLPFoundPhones *a = [[HLPFoundPhones alloc]initWithLoc:loc name:_name];
    [_phones addObject:a];
    [table_name reloaddata];
}
0 голосов
/ 25 июня 2012

Убедитесь, что массив _phones выделен.

Тогда возникнут проблемы, если [tableview reloadData] вызывается внутри потока.Поэтому подтвердите, что reloadData вызывается из основного потока.

0 голосов
/ 09 мая 2011

звонок

[yourTableView reloadData];

в вашей функции updateTable ..

- (void)updateTable:(CGPoint)loc name:(NSString *)_name{
    HLPFoundPhones *a = [[HLPFoundPhones alloc]initWithLoc:loc name:_name];
    [_phones addObject:a];

   //give your tableView object instead of yourTableView
   [yourTableView reloadData];

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...