2012-02-04 11 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]; 
    } 
} 

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確かに - それは多かれ少なかれあなた自身のコードであり、 'objectAtIndex'が' removeObjectAtIndex'に置き換えられています。 – dasblinkenlight

+0

その動作しません... – Pavel

関連する問題