Ich manuell eine UINavigationBar für meine Ansicht verwalten. Die Leiste selbst und das erste UINavigationItem werden im Interface Builder erstellt. In meinem Code, basierend auf verschiedenen Ereignissen, drücke ich neue Navigationselemente auf die Leiste und male die entsprechenden Ansichten als Unteransichten der Hauptansicht. Alles scheint in Ordnung zu sein, aber wenn ich den Navbar-Zurück-Button wähle, werden zwei Items vom Item-Stack entfernt, anstatt 1, wie ich es erwartet hätte. Um zu testen, habe ich meinen Controller als Delegierten für die Bar und Trap 2 Delegatmethoden:UINavigationBar scheint 2 Objekte aus dem Stapel auf "zurück" zu knallen
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item;
und
- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item;
ich direkt vor dem Pop gefunden, die Elemente in der Navigationsleiste sind richtig, Zum Beispiel, 3. In der zweiten Methode, gleich nach dem Pop, ist die Elemente 1, obwohl das Element Pop ist das letzte Element - irgendwie fehlt das mittlere Element. Ich bin ratlos, wie das zu debuggen und würde mich über jede Idee freuen.
Beachten Sie, dass ich aus verschiedenen Gründen keinen Navigationscontroller verwende.
Ja, danke. Ich dachte, dass vielleicht etwas didPopItem und shallPopItem zweimal aufgerufen hat, weshalb ich die Delegate-Methoden eingerichtet habe, damit ich diese abfangen konnte. Sie werden nur einmal angerufen. Damals schien es einfacher, meinen Viewcontroller zu erweitern, als den Navigationscontroller zu implementieren. Und da IB Ihnen die Werkzeuge zur Verfügung stellt, um das einzurichten, dachte ich, es wäre OK. Außerdem bin ich ziemlich neu in iphone dev und mag die Framework-Mechanik zu verstehen. Ich habe mich jetzt darum gekümmert und habe dies noch einmal mit der Umgebung in Verbindung gebracht, die meinem Verständnis entgangen ist ... – farhadf