Frage

Ich habe den folgenden Code in meiner Anwendung. Es ist ein iPad-App, mit fünf Tabellen in einer einzigen Ansicht mit dem Namen monTable, tueTable etc. Diese Tabellen repräsentieren Montag bis Freitag.

In diesem Code ich das Datum erhalten und jeden Tabellentitel auf das Datum von Montag bis Freitag gesetzt (diese Woche). Dann, wenn ich eine Taste drücken, wird nextWeek TRUE und ich nachladen Tabellendaten. Das bedeutet dann, dass die Woche erhöht. Siehst du?

-(IBAction)nextWeekDown{
    nextWeek = TRUE;
    [monTable reloadData];
}

- (NSString*) tableView:(UITableView *)tableView titleForHeaderInSection:(int)section{

    curDate = [NSDate date]; // Get current date
    calendar = [NSCalendar currentCalendar];// Init calendar
    comps = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit fromDate:curDate]; // Get necessary date components

    // Week days change from 1 to 7, Sunday is the 1st, Saturday - the last one.
    if (tableView == monTable){
        if(nextWeek == TRUE){
            [comps setHour:168];
            NSDate *date = [calendar dateByAddingComponents:comps toDate:curDate options:0];
        }
        else{
            [comps setWeekday:2];
        }
    }
    if (tableView == tueTable){
        if(nextWeek == TRUE){
            [comps setHour:168];
            NSDate *date = [calendar dateByAddingComponents:comps toDate:curDate options:0];
        }
        else{
            [comps setWeekday:3];
        }
    }
    if (tableView == wedTable){
        if(nextWeek == TRUE){
            [comps setHour:168];
            NSDate *date = [calendar dateByAddingComponents:comps toDate:curDate options:0];
        }
        else{
            [comps setWeekday:4];
        }
    }
    if (tableView == thuTable){
        if(nextWeek == TRUE){
            [comps setHour:168];
            NSDate *date = [calendar dateByAddingComponents:comps toDate:curDate options:0];
        }
        else{
            [comps setWeekday:5];
        }
    }
    if (tableView == friTable){
        if(nextWeek == TRUE){
            [comps setHour:168];
            NSDate *date = [calendar dateByAddingComponents:comps toDate:curDate options:0];
        }
        else{
            [comps setWeekday:6];
        }
    }

    NSDate *tDate = [calendar dateFromComponents:comps];
    NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
    [formatter setDateFormat:@"EEE, MMM d"];

    return [formatter stringFromDate:tDate];
}

Mein Problem ist für einige verdrahteten Grund, dass es erhöht nur Montag um sieben Tage auf die nächste Woche und keiner der anderen Tage gewechselt werden, wenn die Taste irgendwelche Ideen gedrückt wird? Danke.

War es hilfreich?

Lösung

In nextWeekDown Methode neu laden Sie nur monTable - so natürlich andere Tabellen tun reload nicht. Sie müssen alle anderen Tabellen erneut zu laden und ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top