UITableViewController setEditing:animated: funktioniert nicht ohne animated

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • UITableViewController setEditing:animated: funktioniert nicht ohne animated

    Hallo,

    ich programmieren gerade ein kleines Tool, das mir in einer Tabelle mehrere Projektnamen verwalten soll. Dazu habe ich den EDIT/DONE Button in der Navigationsleiste angelegt und setEditing:animated: implementiert. Funktioniert auch alles soweit super - ich kann Projektnamen der Liste hinzufügen und wieder löschen, wie gewünscht.

    Nun möchte ich aber den EDIT-Modus automatische abschalten, wenn die Applikation in den Background-Modus eintritt. Auch das tut sie. Das System legt dabei allerdings einen Screenshot automatisiert an, der beim zurückkehren in den Foreground-Modus für die Animation genutzt wird. Leider enthält dieser noch die Tabellenzeile "(+) Neues Projekt hinzufügen", die nur im EDIT-Modus auftritt, obwohl ich diesen bereits deaktiviert habe. Dadurch kommt ein kurzes lästiges Flackern zu stande, weil der Sekunden später angezeigte View diese Zeile ja gar nicht mehr enthält. Wie sich herausgestellt hat, liegt das an der Animation. Leider funktioniert mein setEditing:animated: nicht OHNE animation, obwohl ich den Parameter auf NO setze. Hat da jemand einen Tipp für mich?

    Quellcode

    1. - (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    2. if(editing || (!editing && self.editing)) {
    3. [super setEditing:editing animated:animated];
    4. NSArray *indexPaths = [NSArray arrayWithObjects:[NSIndexPath indexPathForRow:[self.singlePieceProjects count] inSection:0],
    5. [NSIndexPath indexPathForRow:[self.multiPieceProjects count] inSection:1],
    6. nil];
    7. [self.tableView beginUpdates];
    8. [self.tableView setEditing:editing animated:animated];
    9. if(editing)
    10. if(animated)
    11. [self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationTop];
    12. else
    13. [self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
    14. else
    15. if(animated)
    16. [self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationTop];
    17. else
    18. [self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
    19. [self.tableView endUpdates];
    20. }
    21. }
    Alles anzeigen



    Danke im voraus
    pocahontius