简体   繁体   English

TableView和Detail视图单元格显示

[英]TableView and Detail view cell display

I'm learning how to make a contact using TableView and navigation controller. 我正在学习如何使用TableView和导航控制器进行联系。 I have done the first view page with some cells, but I have some problem with showing the cells on the detail view page of each cell from first view. 我已经用一些单元格完成了第一个视图页面,但是在从第一个视图的每个单元格的详细视图页面上显示单元格时遇到了一些问题。 when tap the Group A, Group B, Group C on first view page, it goes to the detail view of each cell, it should show cells named A1 A2 A3, B1 B2 B3 or C1 C2 C3 according to my code on detail view page. 在第一个视图页面上点击组A,组B,组C时,会转到每个单元格的详细信息视图,根据我在详细信息视图页上的代码,应显示名为A1 A2 A3,B1 B2 B3或C1 C2 C3的单元。 but it display nothing. 但它什么也没显示。 Hope someone can give me some advises, thank you so much! 希望有人能给我一些建议,非常感谢!

FirstViewController.m FirstViewController.m

@implementation FirstViewController
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSections(NSInteger)section{

    return [self.contactArray count];
}

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *Celldentifier = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Celldentifier];

if (cell == NULL) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:Celldentifier];

}
cell.textLabel.text = [self.contactArray objectAtIndex:indexPath.row];
return cell;

}

-(void)tableView: (UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    self.myTableView = [self.contactArray objectAtIndex:indexPath.row];
    [self performSegueWithIdentifier:@"To Second View Segue" sender:self];     
}


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([segue.identifier isEqualToString:@"To the second view"]){
        NSIndexPath *indexpath = [self.myTableView indexPathForSelectedRow];
        self.contactArray = [self.contactArray objectAtIndex:indexpath.row];
        SecondViewController *vc = segue.destinationViewController;
        vc.memberName = [self.contactArray objectAtIndex:indexpath.row];
        vc.title = vc.memberName;

    }
}

- (void)viewDidLoad {
    [super viewDidLoad];
    self.contactArray = [[NSMutableArray alloc]initWithObjects:@"Group A",@"Group B",@"Group C", nil];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
 }

@end

SecondViewController.m SecondViewController.m

@implementation SecondViewController{

NSArray *groupA;
NSArray *groupB;
NSArray *groupC;

}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    if([self.memberName isEqualToString:@"groupA"]){
        return [groupA count];
    }
    else if([self.memberName isEqualToString:@"groupB"]){
        return [groupB count];
    }
    else if([self.memberName isEqualToString:@"groupC"]){
        return [groupC count];
    }
    return 0;
}

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *Celldentifier = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Celldentifier];

    if (cell == NULL) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:Celldentifier];

    }
    if([self.memberName isEqualToString:@"groupA"]){
        cell.textLabel.text = [groupA objectAtIndex:indexPath.row];
    }
    if([self.memberName isEqualToString:@"groupB"]){
        cell.textLabel.text = [groupB objectAtIndex:indexPath.row];
    }
    if([self.memberName isEqualToString:@"groupC"]){
        cell.textLabel.text = [groupC objectAtIndex:indexPath.row];
    }

    return cell;

}

- (void)viewDidLoad {
    [super viewDidLoad];
    groupA = [NSArray arrayWithObjects:@"A1",@"A2",@"A3",nil];
    groupB = [NSArray arrayWithObjects:@"B1",@"B2",@"B3",nil];
    groupC = [NSArray arrayWithObjects:@"C1",@"C2",@"C3",nil];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

@end

first view 第一视角

第一视角

detail view but nothing displayed 详细视图,但未显示任何内容

详细视图,但未显示任何内容

Have you set the delegate and datasource of tableview? 您是否设置了tableview的委托和数据源?

If Yes, check if the datasource methods (numberOfRowsInSection:) are called after you do 如果是,请检查执行后是否调用了数据源方法(numberOfRowsInSection :)

groupA = [NSArray arrayWithObjects:@"A1",@"A2",@"A3",nil]; groupA = [NSArray arrayWithObjects:@“ A1”,@“ A2”,@“ A3”,nil]; in viewDidLoad method. 在viewDidLoad方法中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM