Avatar billede kasbas91 Nybegynder
29. juli 2012 - 14:19 Der er 3 kommentarer og
1 løsning

Objective C: Reload Data i UITableView, men der sker ikke noget ?

Hej..

Jeg har en oversigt view controller hvor man kan klikke på en cell og navigere ind i en visning af tippet, der har jeg en UIBarButtonItem i toppen af navigations baren i toppen, man klikker der på og der kommer en action sheet op fra bunden af appen, hvor man kan tilføje til favoritter, og man klikker der på så bliver den også fint tilføjet til min favorit view controller, når man gør det bliver der kaldet en :


[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateTableView) name:@"UpdateTableViewsNotification" object:nil];


med en funktion updateTableView:


-(void)updateTableView
{
    [self.tableView reloadData];
}


men det virkede ikke.

Den skulle gerne opdater min favorit view controller cells med det nye data
Jeg har også prøvet at lave updateTableView funktionen lidt om:

-(void)updateTableView
{
    [self setFavorites];
    [self.tableView reloadData];
}


den oprettede de samme data mange gange... altså duplikerede dataen

setFavorites funktionen laver en NSMutableArray fra NSUserDefaults, som i kan se her:

-(void)setFavorites
{
    // Tjekker om de er blevet sat
    if(favorite == nil || favoritArray == nil)
    {
        // Jeg sætter favorite
        favorite    = [NSUserDefaults standardUserDefaults];
        // Jeg sætter newfavoriteArray
        favoritArray = [[NSMutableArray alloc] init];
    }
   
    // Den skal kun køre denne hvis favorites ikke er tom
    if([favorite objectForKey:@"favorites"] != nil)
    {   
        // Jeg pakker objekterne ud
        for(NSDictionary *getTipFromFavoriteNew in [[favorite objectForKey:@"favorites"] mutableCopy])
        {
            [favoritArray addObject:getTipFromFavoriteNew];
        }
    }
   
    // Jeg tjekker om der er favoritter da jeg skal vise edit knappen
    if(favoritArray.count != 0)
    {
        // Man skal kunne slette favoritter igen
        self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Delete All" style:UIBarButtonSystemItemTrash target:self action:@selector(deleteAlert)] autorelease];
        self.navigationItem.rightBarButtonItem = self.editButtonItem;
    }
}


Men når jeg køre alt dette, duplikere den bare dataen og ikke bare indsætter det nye data ..

i kan også se alt koden fra min favorit controller: http://pastebin.com/XWe4yFK0

Jeg har prøvet alt muligt, men ved ikke hvordan jeg løser dette. :)

Håber i kan hjælpe mig !!!

Tak...
Avatar billede kasbas91 Nybegynder
31. juli 2012 - 14:05 #1
Er der ikke nogen der kan hjælpe mig.. :(
Avatar billede dino84 Nybegynder
03. august 2012 - 15:01 #2
Tøm din Array inden du tilføjer den ny data.

Eks:
if(favoritArray.count != 0)
{
    [favoritArray removeAllObjects];
}
Avatar billede kasbas91 Nybegynder
05. august 2012 - 10:17 #3
Okay mange tak, skriv et svar..
Avatar billede dino84 Nybegynder
05. august 2012 - 12:05 #4
Svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester