IPhone Sections UITableView

I programmed a UITableView and each cell pushes a new view. All I want to do is add two new sections: one man and one woman, the first and second voice should be in the male section, and the third voice should be in the female section.

#import "FirstLevelViewController.h" #import "SecondLevelViewController.h" #import "DisclosureDetailController.h" #import "SecondVoiceController.h" #import "ThirdVoiceController.h" @implementation FirstLevelViewController @synthesize controllers; -(void)viewDidLoad { self.title = @"Voices"; NSMutableArray *male = [[NSMutableArray alloc] init]; DisclosureDetailController *th = [DisclosureDetailController alloc]; th.title = @"First Voice"; [male addObject:th]; [th release]; SecondVoiceController *array2 = [SecondVoiceController alloc]; array2.title = @"Second Voice"; [male addObject:array2]; [array2 release]; ThirdVoiceController *array3 = [ThirdVoiceController alloc]; array3.title = @"Third Voice"; [male addObject:array3]; [array3 release]; self.controllers = male; [male release]; [super viewDidLoad]; } -(void)viewDidUnload { self.controllers = nil; [super viewDidUnload]; } -(void)dealloc { [controllers release]; [super dealloc]; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self.controllers count]; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *FirstLevelCell= @"FirstLevelCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:FirstLevelCell]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:FirstLevelCell] autorelease]; } NSUInteger row = [indexPath row]; SecondLevelViewController *controller = [controllers objectAtIndex:row]; cell.textLabel.text = controller.title; cell.imageView.image = controller.rowImage; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; return cell; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSUInteger row = [indexPath row]; SecondLevelViewController *nextViewController = [self.controllers objectAtIndex:row]; [self.navigationController pushViewController:nextViewController animated:YES]; } 

All I want to do is add two new sections: one man and one woman, the first and second voice should be in the male section, and the third voice should be in the female section. Please help get stuck in this for a while!

+8
objective-c iphone cocoa-touch uitableview
source share
2 answers

The tableView delegate has a numberOfSectionsInTableView method. Return the number of partitions you want to create.

Then in cellForRowAtIndexPath use indexPath another [indexPath section] property to split sections based on sections.

Example

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 2; //one male and other female } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { switch(section){ case 0: return [male count]; break; case 1: return [female count]; break; } } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *FirstLevelCell= @"FirstLevelCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:FirstLevelCell]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:FirstLevelCell] autorelease]; } SecondLevelViewController *controller; switch([indexPath section]){ case 0: controller = [male objectAtIndex: [indexPath row] ]; break; case 1: controller = [female objectAtIndex: [indexPath row] ]; break; } cell.textLabel.text = controller.title; cell.imageView.image = controller.rowImage; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; return cell; } 
+25
source share

Does that mean?

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // Return the number of sections. return 2; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // Return the number of rows in the section. switch (section) { case 0: return # of rows in section; break; case 1: return # of rows in section; break; } return 0; } 
0
source share

All Articles