2010-12-06 17 views
2

Ich brauche Hilfe mit dem folgenden Code ich benutze Hpple, HTML zu analysieren. und ich brauche Hilfe mit den Daten.Füllen eines UITableView von Arrays

-(void) whatever{ 
NSData *htmlData = [[NSString stringWithContentsOfURL:[NSURL URLWithString: @"http://www.objectgraph.com/contact.html"]] dataUsingEncoding:NSUTF8StringEncoding]; 
TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlData]; 
NSArray *titles = [xpathParser search:@"//h3"]; // get the page title - this is xpath  notation 
TFHppleElement *title = [titles objectAtIndex:0]; 
NSString *myTitles = [title content]; 

NSArray *articles = [xpathParser search:@"//h4"]; // get the page article - this is xpath  notation 
TFHppleElement *article = [articles objectAtIndex:0]; 
NSString *myArtical = [article content]; 

ich mag erstellen und eine Tabelle aus der Reihe „Titel“ bevölkern dann in der Lage sein, der auf dem Tisch klicken, um eine Subview zu laden, die die entsprechende artical auf dem gleichen Index zeigen sollten?

Ich möchte diese programmatisch tun oder mit IB

kann jemand einige Beispiel-Code oder ein Tutorial vorschlagen?

Danke.

Antwort

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

return [titles count]; 

} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 



     static NSString *MyIdentifier = @"MyIdentifier"; 

     UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 
     if (cell == nil){ 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease]; 
     } 


    cell.textLabel.text = [titles objectAtIndex:indexPath.row]; 

     return cell; 

} 


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

/* here pop up Your subview with corresponding value from the array with array index indexpath.row ..*/ 

} 
+0

Das ist großartig rajesh, wird dies die Tabelle für mich erstellen oder muss ich die Tabelle im Interface Builder erstellen? Muss ich diese anrufen? Entschuldigung für meine Ignoranz im neuen IOS dev –

+0

Nein, Sie müssen eine Tabellenansicht in Didload erstellen. – rajesh

+1

nein Sie müssen eine Tabellenansicht in didload erstellen .in Ihrer .h-Datei setzen Sie UITbaleView * yurtableView; und in .m Datei unter ViewDidLoad Methode setzen youtableView = [[UITableView Alloc] initWithFrame: CGRectMake: (setzen Sie Ihre eigenen Koordinaten)]; und dann yurtableView.delegate = self; dann [self.view addSubView: yourTableView]; und int meine Antwort UITableViewCell * Zelle = [tableView dequeueReusableCellWithIdentifier: MyIdentifier]; Ersetzen Sie das 'tableView' mit IhremTableView. k? Bitte lassen Sie mich wissen, wenn Sie Fragen haben? – rajesh

1

Als allgemeiner Ansatz, müssen Sie einfach die entsprechende Controller-Klasse als Delegierter für die UITableView in Frage setzen und dann die folgenden Methoden implementieren:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

Allerdings empfehle ich Apples lesen würde Table View Programming guide - es wird viel mehr als ein einfaches Codebeispiel erklären und ist relativ einfach zu folgen.

Sobald Sie dies getan haben, wenn Sie immer noch nach Beispielcode sind, laden Sie einfach eines der Projekte im Abschnitt "Verwandte Beispielcodes" von UITableView Class reference. (Wenn Sie dies tun, innerhalb von Apple doc Betrachter in Xcode automatisiert den Download usw. und wird das Projekt in Xcode für Sie holen.)

0

Zuerst haben UITableViewDelegate und UITableViewDataSource in .h-Datei zu setzen, wo Sie erstellen Tabellenansicht und deklarieren ein NSarray zum Speichern der Tabellenwerte, und in der .m-Datei der viedidload-Funktion müssen Sie das Array mit Objekten initialisieren (arr_name = [NSArray alloc] initwith Objekte: @ "eins", @ "zwei" , nil) und Sie haben diese drei Methoden platzieren

  • (NSInteger) tableview: (UITableView *) tableview numberOfRowsInSection: (NSInteger) Abschnitt
  • (UITableViewCell *) tableview: (UITableView *) tableview cellForRowAtIndexPath: (NSIndexPath *) indexPath

  • (void) tableview: (UITableView *) tableview DidSelectRowAtIndexPath: (NSIndexPath *) indexPath

Verwandte Themen