2015-02-24 45 views
2

我想在創建的最後節添加節並添加行。Xcode僅在本節添加節和行

但是,當我添加一個部分,並添加一行後,它爲所有部分添加行,我只想到最後創建的部分。

我這樣做:

@interface SectionTestViewController() 
{ 
    NSMutableArray *sectionsArray; 
    NSMutableArray *rowsInSectionsArray; 
    NSInteger currentSection; 
} 
@end 

@implementation SectionTestViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.myTableView.delegate = self; 
    self.myTableView.dataSource = self; 

    sectionsArray = [[NSMutableArray alloc]init]; 
    rowsInSectionsArray = [[NSMutableArray alloc]init]; 

    currentSection = 0; 
} 

#pragma tableview delegate and datasource methods 

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return sectionsArray.count; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return rowsInSectionsArray.count; 
} 

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{ 
    return [sectionsArray objectAtIndex:section]; 
} 

按鈕的動作來補充章節:

- (IBAction)addSectionButton:(id)sender { 
    [sectionsArray addObject:[NSString stringWithFormat:@"Section %lu", (unsigned long)sectionsArray.count]]; 

    currentSection++; 

    [self.myTableView reloadData]; 
} 

按鈕的動作來添加行:

- (IBAction)addRowButton:(id)sender { 
    [rowsInSectionsArray addObject:[NSString stringWithFormat:@"Ligne %lu", (unsigned long)rowsInSectionsArray.count]]; 

    [self.myTableView reloadData]; 
} 

感謝您的幫助

+0

您爲表中的每個部分返回相同的數組「rowsInSectionsArray」。所以當然,當你添加一個對象時,它會爲每個部分返回一個對象。 'rowsInSectionsArray'應該是一個數組數組。 – random 2015-02-24 15:48:00

回答

1

你應該rathe R請勿這樣的事情:

@interface SectionTestViewController() 
{ 
    NSMutableArray *sectionsArrays; 
    NSMutableArray *rowsInSectionsArray; 
    NSInteger currentSection; 
} 
@end 

@implementation SectionTestViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.myTableView.delegate = self; 
    self.myTableView.dataSource = self; 

    sectionsArray = [[NSMutableArray alloc]init]; 
    rowsInSectionsArray = [[NSMutableArray alloc]init]; 

    currentSection = 0; 
} 

#pragma tableview delegate and datasource methods 

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return sectionsArray.count; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [rowsInSectionsArrays objectAtIndex:section].count; 
} 

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{ 
    return [sectionsArray objectAtIndex:section]; 
} 

按鈕的動作來補充章節:

- (IBAction)addSectionButton:(id)sender { 
    [sectionsArray addObject:[NSString stringWithFormat:@"Section %lu", (unsigned long)sectionsArray.count]]; 
    [rowsInSectionsArrays addObject:[[NSMutableArray alloc] init]]; 

    currentSection++; 

    [self.myTableView reloadData]; 
} 

按鈕的動作,在最後一節中添加行:

- (IBAction)addRowButton:(id)sender { 
    [[rowsInSectionsArray objectAtIndex:currentSection] addObject:[NSString stringWithFormat:@"Ligne %lu", (unsigned long)[rowsInSectionsArray objectAtIndex:currentSection].count]]; 

    [self.myTableView reloadData]; 
} 

我只是將rowsInSectionsArray轉換爲數組數組。它包含的每個數組都包含一個部分的行。

一定要在tableView:cellForRowAtIndexPath: