Sam*_*Sam 8 iphone cocoa-touch objective-c uitableview
我一直在编写一个UITableView,每个单元格都会推出一个新的视图,我只想添加两个新的部分,一个是男性,一个是女性,第一个和第二个声音需要在男性部分,第三个声音需要在女性部分.
#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];
}
Run Code Online (Sandbox Code Playgroud)
我想做的就是添加两个新的部分,一个是男性,一个是女性,第一个和第二个声音需要在男性部分,第三个声音需要在女性部分.请帮忙坚持一段时间!
Mri*_*ria 25
tableView委托有一个名为numberOfSectionsInTableView的方法.返回要创建的部分数.
然后,在cellForRowAtIndexPath中使用indexPath其他属性[indexPath section]根据节来隔离行.
一个例子
- (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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28714 次 |
| 最近记录: |