Wie verwalten 2 tableviews in 1 viewController?
Kennt jemand eine einfache Möglichkeit zur Verwaltung mehrere tableViews in einem viewController?
Hier ist, wie ich getan habe, es so weit:
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
if(tableView == self.tableView1)
return 1;
else if(tableView == self.tableView2)
return 2;
}
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
if(tableView == self.tableView1)
return @"bla";
else if(tableView == self.tableView2)
return @"blabla";
}
-(NSString *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(tableView == self.tableView1)
...
else if(tableView == self.tableView2)
...
}
Ich finde es wirklich ärgerlich, dass muss ich das mit einer if/else-Anweisung für JEDE EINZELNE delegate-Methode. Plus, es ist wirklich schwer zu Lesen, wenn es gibt viele tableViews. Außerdem habe ich das gleiche problem mit NSURLConnection, etc... sobald ich mehrere Objekte reagieren auf die gleiche delegate-Protokoll, Dinge chaotisch.
Was ist der beste Weg, um Dinge einfacher machen?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie Auswahlen und eine Art von id für die Tabelle Ansichten (die
UIView
- tag zum Beispiel). So etwas wie dieses:Natürlich müssen Sie eine Methode für jede Tabelle Aussicht. Angenommen, Ihr beiden Tabellen haben eine der tags, 100 und 101, Sie haben dann
tableView100:titleForHeaderInSection
undtableView101:titleForHeaderInSection
.Einer Methode, die ich oft verwendet wird, um tatsächlich haben die Delegierten und die Datenquelle für die beiden
UITableView
s werden verschiedene Objekte. Auf diese Weise werden Ihre view-controller nicht haben, um hin-und herschalten, und der code ist insgesamt cleaner und einfacher.