UItableView удалить строку с помощью функции - PullRequest
1 голос
/ 04 февраля 2012

У меня есть NSMutableArray "day", который содержит (6 NSMutable массивов), массивы содержат

class Lesson{
    NSString *time1;
    NSString *time2;
    NSString *predmet;
    NSString *namPrepod;
    NSString *zamet;
}

У меня есть функция, чтобы получить текущую неделю, день, урок

-(Lesson *)lessonInWeek:(int)week inDay:(int)day lessonNumber:(int)lNumber
{
    Week *currentWeek = nil;
    if(week)    
        currentWeek = nechetNedel;
    else        
        currentWeek = chetNedel;

    NSMutableArray *dayArray = [currentWeek.days objectAtIndex:day];
    Lesson *lesson = [dayArray objectAtIndex:lNumber];

    return lesson;
}

с этой функцией я показываю в

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
......
 Lesson *item = [[Singleton sharedInstance] lessonInWeek:segmentedControl.selectedSegmentIndex inDay:indexPath.section lessonNumber:indexPath.row];

    ....
    time1.text= item.time1;
    ....

    time2.text= item.time2;
    ....
    predmet.text=item.predmet;
    .....
    namePrepod.text=item.namPrepod;
    ......
    zamet.text=item.zamet;
    ....

кому я могу удалить строку с этой функцией без использования?

if(segmentedControl.selectedSegmentIndex==0)
if(section==1)
......

Функция должна редактироваться для удаления строки.

1 Ответ

0 голосов
/ 04 февраля 2012

Добавьте deleteLessonInWeek:inDay:lessonNumber: к вашему одноэлементному классу и вызовите его из вашей tableView:commitEditingStyle:forRowAtIndexPath: реализации:

- (void) tableView:(UITableView*)tableView
    commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
    forRowAtIndexPath:(NSIndexPath*)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        [[Singleton sharedInstance] deleteLessonInWeek:segmentedControl.selectedSegmentIndex inDay:indexPath.section lessonNumber:indexPath.row];
    }
}

Реализация заключается в том, что Singleton может использовать тот же чистый шаблон поиска дневного массивазатем урок в течение дня, а затем удаление запрошенного элемента:

-(void)deleteLessonInWeek:(int)week inDay:(int)day lessonNumber:(int)lNumber {
    // Choose odd or even week:
    Week *currentWeek = week ? nechetNedel : chetNedel;
    NSMutableArray *dayArray = [currentWeek.days objectAtIndex:day];
    [dayArray removeObjectAtIndex:lNumber];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...