2016-03-21 23 views
0

TableViewとナビゲーションコントローラを使用して連絡先を作成する方法を学習しています。私はいくつかのセルで最初のビューページを行っていますが、最初のビューから各セルの詳細ビューページにセルを表示することに何らかの問題があります。 最初のビューページでグループA、グループB、グループCをタップすると、各セルの詳細ビューに移動し、詳細ビューに自分のコードに従ってA1 A2 A3、B1 B2 B3またはC1 C2 C3というセルが表示されますページ。それは何も表示しません。 誰かが私にいくつかの助言を与えることを望む、ありがとう!TableViewと詳細ビューのセル表示

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

@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

+0

あなたはどんな問題を抱えていますか?あなたの問題を明確かつ具体的にする。 – rmaddy

+0

最初のビューページでグループA、グループB、グループCをタップすると、各セルの詳細ビューに移動します。詳細は自分のコードに従ってA1 A2 A3、B1 B2 B3またはC1 C2 C3という名前のセルが表示されますビューページ。それは何も表示しません。私の貧しい英語のために申し訳ありません。 – yucheng

答えて

0

tableviewのデリゲートとデータソースを設定しましたか?

はい、データソースのメソッド(numberOfRowsInSectionは:)あなたが後に呼び出されているかどうかを確認した場合

グループA = [NSArrayのをarrayWithObjects: "A3" @ "A2" @ "A1"、@、ゼロ]; viewDidLoadメソッド内にあります。

関連する問題