2010-12-16 1 views
2

Я программирую простое экономическое приложение для нашей компании, но у меня есть некоторые проблемы. Я заселить UITableView с информацией из динамически создаваемых объектов, как это:Очистить таблицуView on reloadData не работает?

- (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]; 
    } 
Payments *project = [appDelegate.projects objectAtIndex:indexPath.row]; 

if([project.parentProject isEqualToString:bottomTabBar.selectedItem.title]) { 
    NSLog(@"%@ är lika med %@ index: %d",project.parentProject, bottomTabBar.selectedItem.title, indexPath.row); 
    // Configure the cell... 
    NSMutableString *changeInValue = [[NSMutableString alloc] initWithFormat:@"%d",[[project.amountsek objectAtIndex:0] intValue]-[[project.amountsek objectAtIndex:1] intValue]]; 
    if([changeInValue intValue] >= 0) { 
     [changeInValue insertString:@"+" atIndex:0]; 
     cell.imageView.image = [UIImage imageNamed:@"up.png"]; 
    } else { 
     cell.imageView.image = [UIImage imageNamed:@"down.png"]; 
    } 

    NSMutableString *foreignCurrency = [[NSMutableString alloc] initWithString:@""]; 
    if(![project.currency isEqualToString:@"SEK"]) { 
     [foreignCurrency appendFormat:@" - %@%d",project.currency,[[project.payments objectAtIndex:0] intValue]]; 
    } 

    NSString *detailString = [[NSString alloc] initWithFormat:@"%@%d (%@)%@",@"SEK",[[project.amountsek objectAtIndex:0] intValue],changeInValue, foreignCurrency]; 

    [changeInValue release]; 
    [foreignCurrency release]; 

    cell.textLabel.text = project.name; 
    cell.detailTextLabel.text = detailString; 

    [detailString release]; 
} 

project = nil; 

return cell;} 

И все работает как шарм! Однако! Когда я нажимаю другой tabButton, я хочу, чтобы он перезагрузил таблицу и отобразил только согласованные элементы! (Соответствие работает нормально, журнал распечатывает все правильно). Хотя старые ячейки таблицы не пустуют до добавления новых.

Вот код для перегрузочной TabItem:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item { 
NSLog(@"Tab clicked: %d", item.tag); 
[sourcesTable reloadData]; 
} 

Как решить эту проблему? Я новичок в программировании для iPhone, и я действительно мог бы использовать некоторую помощь.

+0

Никто? :(действительно? – Hjalmar 2010-12-17 12:03:07

ответ

0

Обращайтесь к [sourcesTable reloadData]; в viewWillAppear метод этого ViewController.m Этот вызов каждый раз, когда отображается ваше представление.