UItableView使用该函数删除行

时间:2012-02-04 14:18:58

标签: iphone objective-c ios

我有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 :(得分: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];
    }
}

实现在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];
}