2011-05-21 3 views
2

Salut
Ma vue est une vue de table dans un contrôleur de navigation. J'ai utilisé le code de quelqu'un d'autre pour le faire, et je sais que c'était l'intention de la personne lors de l'écriture du code, mais quand je touche une cellule de tableau, cela me mène à la même vue. Comment critiqueriez-vous le code ci-dessous pour charger une plume différente avec chaque cellule de table différente.Aide de la navigation de table simple

MoreTableViewController.h

@interface MoreTableViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> { 
IBOutlet UITableView *moreTableView; 
NSMutableArray *moreArray; 
AboutDetailViewController *aboutDetailViewController; 

} 

@property (nonatomic, retain) NSMutableArray *moreArray; 
@property (nonatomic, retain) AboutDetailViewController *aboutDetailViewController; 
@end 

MoreTableViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
NSInteger row = [indexPath row]; 
if (self.aboutDetailViewController == nil) { 
    AboutDetailViewController *aboutD = [[AboutDetailViewController alloc] initWithNibName:@"AboutDetailViewController" bundle:nil]; 
    self.aboutDetailViewController = aboutD; 
    [aboutD release]; 

} 
aboutDetailViewController.title = [NSString stringWithFormat:@"%@", [moreArray objectAtIndex:row]]; 

ROSS_APP_7AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
[delegate.moreNavController pushViewController:aboutDetailViewController animated:YES]; 

}

Est-ce que je dois faire une instruction if? Si oui, comment pourrais-je écrire le code. J'ai besoin de toute l'aide que je peux obtenir ici. Merci pour votre aide.

Répondre

0
if(indexPath.row == 0) 
{ 
    AboutDetailViewController *aboutD = [[AboutDetailViewController alloc] initWithNibName:@"AboutDetailViewController" bundle:nil]; 
    self.aboutDetailViewController = aboutD; 
    [aboutD release]; 
} 
else if(indexPath.row == 1) 
{ 

} 
else if(indexPath.row == 2) 
{ 

} 

Ok ....

Et vous devez écrire toutes ces choses dans la méthode ci-dessous

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

Merci beaucoup !!! – Sam

1
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSInteger row = [indexPath row]; 
     switch(row) { 
      case 0: 
      // First row 
      // Push xib 
      break; 

      case 1: 
      // Second row 
      // Push xib 
      break; 
     } 
}