2010-10-04 14 views
6

Ich kodiere App vom iPad und ich muss zwei separate UITableView auf dem gleichen Bildschirm setzen. Für diese App kann ich den UITableView und divid nicht in zwei Abschnitte für Grundanforderungen setzen. Es muss zwei getrennt sein. Nun, in diesem Fall kann ich die Zeilen von UITableView füllen. Kann ich eine DataSource und Delegate in separaten Klassen erstellen, eine für eine erste UITableView und andere DataSource- und Delegate-Klasse für die zweite UITableView oder einen anderen Ansatz eleganter?iPad - Mehrere UITableView im selben Bildschirm

tks viel.

Antwort

11

Im August habe ich einige example code online wo ich zwei verschiedene Klassen für Datasource und UITableViewDelegate

+0

Hallo Vikingosegundo! sehr gut dein Codebeispiel! Ich lade es herunter und löse andere Probleme mit deinem Code! wieder, tks. – rwvaldivia

+0

:) Ich bin froh, dass es hilfreich war! – vikingosegundo

4

Sie können dies auf verschiedene Arten tun. Am einfachsten ist es, separate Klassen zu verwenden, um die Datenquellen- und Delegierungsprotokolle für jede Tabellenansicht zu behandeln.

Alternativ können Sie eine einzelne Klasse als Datenquelle und Delegate für beide verwenden und die Identität der Tabellenansicht überprüfen, die an die Protokollmethoden übergeben wird.

Es wäre in etwa so aussieht: (Ich gehe davon aus diesem Code auf Ihrem View-Controller ist.)

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    CGFloat height = 44.0; // default height 
    if (tableView == self.myLeftTableView) { 
     height = // Compute the cell height for the left table view. 
    } else { 
     height = // Compute the cell height for the right table view. 
    } 
    return height; 
} 

Dies könnte schnell hässlich, weshalb ich den ersten Ansatz empfehlen würde.

+0

Hallo Roboter K. nicht einen hässlichen Code, funktioniert einfach :). Doing "Union" mit Ihrem Code und Code des Benutzers Vikingosegundo, das spart meinen Tag. Danke vielmals. – rwvaldivia

3

Ja, Sie verschiedene Klassen für Datenquelle und Delegatmethoden für verschiedene UITableView und in-der Tat ist dies der beste Ansatz für die Verwendung machen können Mehrere Tabellen in derselben Ansicht wie dieser Ansatz implementiert die MVC-Architektur. Probieren Sie diese 2 Lösungen aus, in denen der erste Ansatz zum Implementieren von 2 Tabellen dataSource und Delegate-Methode in derselben Klasse und zweitens das Implementieren unterschiedlicher Datenquellen- und Delegate-Methoden in verschiedenen Klassen entweder mithilfe von UITableViewController oder NSObject

implementieren versuchen, diese Links, wo Sie Beispielcode finden:

Handle more than one table in a View Part-1

Handle more than one table in a View Part-2

Verwandte Themen