2012-02-04 4 views
1

У меня есть NSMutableArray "день", которые содержат (6 NSMutable массивы) массивы содержатUITableView удалить строку с помощью функции

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) 
...... 

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

ответ

0

Добавить 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]; 
    } 
} 

Реализация Iside в 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]; 
} 
+0

Вы можете написать эту функцию, которая удалит строку? – Pavel

+0

@Pavel Sure - это более или менее собственный код с заменой 'objectAtIndex' на' removeObjectAtIndex'. – dasblinkenlight

+0

его не работает ... – Pavel

Смежные вопросы