Ich habe einen seltsamen Fehler. Ich verwende UITableView
, die neu geladen werden muss, wenn eine Zeile ausgewählt wird. Dies funktioniert im iPhone-Simulator. Während auf dem iPad ausgeführt wird, wird didSelectRowAtIndexPath
aufgerufen, aber die Benutzeroberfläche wird nicht aktualisiert. Ich habe versucht, die Methode reloadData
auf Haupt-Thread aufrufen. Es ist immer noch dasselbe.TableView reloadData aktualisiert UI in iPad nicht, aber funktioniert in iPhone
Ich habe verschiedene Lösungen im Stackoverflow ausprobiert. Nichts schien mein Problem zu lösen.
UPDATE
Wenn ich eine Zelle auswählen, werden neue Zelle hinzugefügt werden. Also muss ich meine Tabellenansicht neu laden, um die dynamische Änderung anzuzeigen. Posted meinen Code unten
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath
{
NSUInteger count=indexPath.row+1;
NSMutableArray *insertIndexPaths = [NSMutableArray array];
[insertIndexPaths addObject:[NSIndexPath indexPathForRow:count inSection:indexPath.section]];
switch (indexPath.row) {
case 0:
{
if ([ItemsInSection[indexPath.section] count]==1){
[ItemsInSection[indexPath.section] addObject:obj2];
[TabView beginUpdates];
[TabView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationLeft];
[TabView endUpdates];
}
else {
[ItemsInSection[indexPath.section] removeAllObjects];
[ItemsInSection[indexPath.section] addObject:obj1];
[self.TabView reloadData];
}
}
break;
case 1:
{if ([ItemsInSection[indexPath.section] count]==2){
[ItemsInSection[indexPath.section] addObject:obj3];
[self.TabView beginUpdates];
[TabView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationLeft];
[self.TabView endUpdates];
}
else
{
[ItemsInSection[indexPath.section] removeAllObjects];
[ItemsInSection[indexPath.section] addObject:obj1];
[ItemsInSection[indexPath.section] addObject:obj2];
[self.TabView reloadData];
}
}
break;
case 2: {
if ([ItemsInSection[indexPath.section] count]==3) {
[ItemsInSection[indexPath.section] addObject:obj4];
[self.TabView beginUpdates];
[TabView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationLeft];
[self.TabView endUpdates];
}
else
{
[ItemsInSection[indexPath.section] removeObject:obj4];
[self.TabView beginUpdates];
[TabView deleteRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationLeft];
[self.TabView endUpdates];
}
}
break;
default:
break;
}
}
Sie sollten Ihren Code veröffentlichen. Es klingt für mich das Problem ist woanders. Warum möchten Sie außerdem die gesamte Tabellenansicht neu laden, wenn Sie eine Zelle auswählen? Bitte beschreiben Sie das eigentliche Ziel, das Sie erreichen möchten, anstatt nach einer Lösung für einen nicht funktionierenden Versuch zu suchen. – ozgur