UITableView Push

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

  • UITableView Push

    Hallo,

    mit klicken auf ein Item in meiner TableView, kann ich navigieren. Es wird die Methode reloaddata ausgeführt. Jetzt habe ich meinem TVC eine Transition hinzugefügt:

    Quellcode

    1. CATransition *animation = [CATransition animation];
    2. [animation setType:kCATransitionPush];
    3. [animation setSubtype:kCATransitionFromRight];
    4. [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]];
    5. [animation setFillMode:kCAFillModeBoth];
    6. [animation setDuration:0.7f];
    7. [self.tableView.layer addAnimation:animation forKey:@"UITableViewReloadDataAnimationKey"];


    Das Problem ist, dass beim Schieben, ein schwarzer Balken oder das schwarze leere zu sehen ist.
    Ich habe auch schon versucht hinter der TableView eine View hinzuzufügen, hat aber nichts gebracht.
    Ist es vllt möglich, beim Navigieren, die aktuelle TV zur Seite zu schieben und die neue hinterher, damit dort ein direkter übergang entsteht?

    Gruß
  • :D Ich bin gerade auf die Idee gekommen, dass man das damit vllt machen könnte.
    Nur eins ist doof, ich habe im Storyboard ein TVC. Sonst hätte ich gedacht ich mache mir eine einfache view packe da meinen navigationcontroller drauf und die tableview.

    Im Storyboard habe ich vor dem TVC einen NavigationController. Könnte ich vllt dadrauf zugreifen und das darüber machen?
  • Ich finde nichts darüber wie man das lösen soll, wenn ich die gleiche tableview neu lade.
    Bei den meisten tut ist es so, dass sie eine tvc haben und wenn sie auf eine cell klicken, wird das ganze an einen vc abgegeben.
    Im storyboard wird noch vorher ein segue gesetzt von der tvc zum vc.

    Ich habe aber nur eine relationship von dem nvc zu dem tvc. Ich möchte beim klicken auf einer cell das der gleiche tvc neu geladen wird.
    Hat einer eine idee?
  • Soll wirklich der Controller neu geladen werden (und warum) oder willst Du vielleicht nur die Datenquellen neu laden? Wenn letzteres, gibt es dafür eine Methode des TableViewControllers, "reloadData:" IIRC.

    HTH, Mattes

    Edit: Naja, fast zumindest, "reloadData:" ist eine Methode der UITableView ... ich sollte doch nicht im Café sitzend Beiträge posten ;)
    Diese Seite bleibt aus technischen Gründen unbedruckt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MyMattes ()

  • Ok, dies lässt sich natürlich auch innerhalb eines TableViewController lösen, allerdings müsst Du dann natürlich ein eigenes leftBarButtonItem verwenden und hast keine Animation, wobei man dies ggf. auch realisieren könnte.

    Einfacher scheint es jedoch zu sein eine neue Instanz des TableViewController per entsprechender Segue und neuem Pfad auf den Navigation Stack zu pushen.
  • MCDan schrieb:

    Ok, dies lässt sich natürlich auch innerhalb eines TableViewController lösen, allerdings müsst Du dann natürlich ein eigenes leftBarButtonItem verwenden und hast keine Animation, wobei man dies ggf. auch realisieren könnte.

    Einfacher scheint es jedoch zu sein eine neue Instanz des TableViewController per entsprechender Segue und neuem Pfad auf den Navigation Stack zu pushen.


    Zum ersten mir geht es eig. nur um die Animation. Ich habe breits einen eigenen leftBarButton und beim klicken auf bestimmte rows merke ich mir die Objekte. Wenn ich dann auf den leftbarbutton klicke lade ich die tableview data mit dem gespeicherten objekt.

    Zum zweiten Vorschlag. Ich habe keine Segue sondern nur eine relationship. TBC -> NVC - relationship rootVC to listVC > TVC.
  • MCDan schrieb:

    Alternativ zu einer Seque im Storyboard kannst Du einen ViewController auch einfach per Source Code auf den Navigation Stack pushen. ;)


    Hat der TVC einen VC und wenn ja kann ich den aktuellen VC in den Navigation Stack pushen ?
    So bekomme ich eine Fehlermeldung:
    [self.navigationController pushViewController:self animated:true];
    Pushing the same view controller instance more than once is not supported
  • MCDan schrieb:

    Durch wie viele "Ebenen" soll man sich denn da durchtouchen können?


    Man kann sich so viele Kategorien erstellen wie man will. Stell dir vor du erstellst eine App mit der du Ortnamen eintragen kannst. Dann fügst du in die oberste Hierarchie das Land ein, Ortsteil und Stadt zu der Stadt kannst du dann noch mehr sachen einfügen. Also es bleibt einem selbst überlassen.

    Gruß
  • Da sehe ich ehrlich gesagt keine Probleme. Genau dafür ist der Navigation Controller ja gedacht.

    Ok, bei mehr als 4-5 Ebenen ist es halt lästig von der untersten zurück auf die oberste Ebene zu gelangen, aber da sollte sich Apple halt etwas einfallen lassen. Oder gibt es da vielleicht schon etwas im iOS?
  • Sogar wenn ich das mit dem NC mache ist das unschön.
    Die neue View wird zu schnell herein gepusht und dieser schwarze Balken (Wenn die neue View hereinkommt ist immer noch da. Was aber standardmäßig so ist.).
    Es soll einfach alles nach links geschoben werden ohne irgendwelche Effekte.

    Der Typ von iFile hat das sehr gut hingekriegt.
    Von 1:55 - 2:00
    youtube.com/watch?v=6vgZwtCQySI

    Hat einer eine Idee wie man das so ähnlich hinkriegt?

    Gruß