2010-04-24 9 views
1

J'ai essayé de vous le demander auparavant, mais rien n'a été répondu. Fondamentalement, je voudrais que quelqu'un m'explique comment créer une table, qui quand une cellule est tapée, pousse l'utilisateur à la prochaine vue pour cette cellule. J'ai ce jusqu'à présent:iPhone: Création d'une navigation de table basée sur la hiérarchie

Click here to view what I have.

Je voudrais encore, dire quand CSS est exploité, il va à une nouvelle vue qui a une autre tableau en elle. Cette table conduirait alors l'utilisateur à une vue détaillée, qui est défilable et vous pouvez passer des pages à travers elle.

J'apprécierais plus de tutoriels plus structurés sur la façon de faire chaque bit pour l'obtenir à travail.

Voici mon tableau dans mon dossier de mise en œuvre:

- (void)viewDidLoad { 
    arryClientSide = [[NSArray alloc] initWithObjects:@"CSS", @"HTML", @"JavaScript", @"XML", nil]; 
    arryServerSide = [[NSArray alloc] initWithObjects:@"Apache", @"PHP", @"SQL", nil]; 
    self.title = @"Select a Language"; 
    [super viewDidLoad]; 
} 

et mon .h:

@interface RootViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> { 
    IBOutlet UITableView *tblSimpleTable; 
    NSArray *arryClientSide; 
    NSArray *arryServerSide; 
} 

Mon code actuel s'écrase le script, et cette erreur est retournée dans la console:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "NextView" nib but didn't get a UITableView.' 

Si cette erreur est la raison pour laquelle il ne pousse pas, alors une explication de la façon de remédier à ce problème ld également apprécié

NextViewController mise en œuvre

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    arryBasicCSS = [[NSArray alloc] initWithObjects:@"Implement", @"Syntax", @"Classes and IDs", @"Fonts", @"Backgrounds", @"Lists", @"Links", nil]; 
    arryIntermediateCSS = [[NSArray alloc] initWithObjects:@"Padding and Margin", @"Alignment and Floating", @"Pseudo-class and Element", @"Opacity and Display", nil]; 
    arryAdvancedCSS = [[NSArray alloc] initWithObjects:@"Sprites", @"Attribute Selectors", @"Animation", nil]; 
    self.title = @"CSS"; 
    [super viewDidLoad]; 
} 

- (IBAction) changeItemTable:(NSString *)str{ 
    tblCSS = str; 
} 

NextViewController.h

@interface NextViewController : UITableViewController { 
    IBOutlet UITableView *tblCSS; 
    NSArray *arryBasicCSS; 
    NSArray *arryIntermediateCSS; 
    NSArray *arryAdvancedCSS; 
} 

Un grand merci, Jack

Répondre

1

D'abord la "due à l'application Mettre fin uncaught exception" Erreur. J'ai remarqué que votre RootViewController contient:

IBOutlet UITableView *tblSimpleTable; 

Assurez-vous que vous avez correctement connecté la propriété « vue » de RootViewController à votre UITableView, et non seulement connecté à votre tblSimpleTable TableView. La propriété view dans UITableViewController doit pointer vers UITableView.

En supposant que tblSimpleTable est le TableView que vous voulez contrôler à partir de ce UIViewController, supprimez cette sortie et utilisez simplement la propriété "view" ou "tableView" du UITableViewController, ils seront tous deux valides.

Pour votre problème d'origine de vues de table hiérarchique, ont à examiner ce projet exemple:

TheElements

1

Si la propre documentation du SDK ne fournit pas les réponses vous avez besoin, essayez une recherche Google pour UITableView Interface Builder tutorial. Cela devrait renvoyer un certain nombre de tutoriels utiles étape par étape.

La raison pour laquelle vous obtenez l'exception est que vous n'avez pas connecté votre prise tblSimpleTable à votre objet de vue de table dans Interface Builder.

IB Outlets http://i41.tinypic.com/ohr1jb.png

Ouvrir NextView.xib dans Interface Builder. Sélectionnez l'objet File's Owner. Ouvrez le volet Inspecteur et vous devriez voir quelque chose de similaire à l'image que j'ai publiée. Au lieu de "searchTable", vous devriez lire "tblSimpleTable". Pour connecter la sortie au propriétaire du fichier, cliquez et maintenez sur le cercle à droite de "tblSimpleTable" et faites glisser la ligne vers votre objet "tblSimpleTable".

alt text http://i44.tinypic.com/2pr8pi0.jpg

Enregistrez vos modifications, reconstruisez votre projet.

+0

Merci. Je pense que je suis dans une boucle de confusion: j'ai des références partout. Quand j'essaye de tenter ce que tu as fait, j'obtiens ces deux erreurs. BTW, j'ai créé manuellement tblCSS via IB. Je ne sais pas si vous voulez dire que j'ai besoin de tblSimpleTable. J'ai mis à jour mon message avec le code que j'ai dans mes fichiers NextViewController. –