Ich habe ein UITableViewController
, das dynamisch je nach vorheriger Auswahl durch den Benutzer bevölkert wird. In einigen Fällen sollte der Benutzer mehrere Zeilen in der Tabelle auswählen können, in anderen Fällen jedoch nicht. Ich möchte automatisch die erste Zeile in beiden Fällen auswählen, aber ich habe festgestellt, dass dies nur funktioniert, wenn ich allowsMultipleSelection = YES
habe.
Der folgende Code wird während -(void)viewDidLoad
aufgerufen
switch(self.field)
{
case people:
self.options = (NSArray *)[data objectForKey:@"People"];
self.tableView.allowsMultipleSelection = YES;
enter code here break;
case place:
self.options = (NSArray *)[data objectForKey:@"Places"];
self.tableView.allowsMultipleSelection = NO;
break;
case reason:
self.options = (NSArray *)[data objectForKey:@"Reasons"];
self.tableView.allowsMultipleSelection = NO;
break;
}
[self.tableView reloadData];
NSIndexPath *zeroPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView selectRowAtIndexPath:zeroPath animated:NO scrollPosition:UITableViewScrollPositionNone];
Dies funktioniert korrekt für den Fall "People", aber nicht für die anderen. Ich habe versucht, allowMultipleSelection
auf YES
zu setzen und das löst das Problem der Auswahl, aber es ist in Bezug auf die Anwendungslogik nicht akzeptabel.
Habe ich etwas über die Funktionsweise dieser Funktionen übersehen? Wie kann ich programmatisch eine Zeile in einer Einzelauswahl-Tabelle auswählen?