Szenario auf einem iPhone zu ermöglichen:Get UINavigationBar delegieren „zurück“, mit einer netten Animation
Der Benutzer tippt die Zurück-Taste, die UINavigationBar
Delegatmethode (in einer Unterklasse von UINavigationController
implementiert) gibt YES
, wie folgt aus:
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item
{
// Verify stuff...
return YES;
}
nun nach den docs, dann ist es in der Verantwortung der App die Navigationsleiste und den Inhalt synchron zu halten, und den Ort, das zu tun, ist in der Delegatmethode
- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item
Das Problem ist, dass didPopItem
wird nur aufgerufen, nachdem Pop-Animation-Sequenz der Nav-Leiste beendet ist, also, wenn ich [self popViewControllerAnimated: NO]
aufrufen, ist das Nettoergebnis, dass zuerst die Navigationsleiste zurück, dann den Inhalt.
Und das sieht einfach falsch aus.
Wenn ich die pop...
pop...
der Delegate shouldPop...
Methode aufrufen, bekomme ich eine Fehlermeldung, dass ich Animationen überlappen bin, und der Endzustand ist nicht sauber.
Also meine Frage ist, gibt es eine andere Möglichkeit, um den UINavigationController Inhalte zu ändern, vorzugsweise mit einer netten Animation synchron mit der Navigationsleiste, aber ohne Verwirrung zwischen der Navigationsleiste und dem Navigationscontroller zu schaffen?
Das Ziel-Betriebssystem ist iOS 4.2 und höher.
Ich bin mir bewusst, dass ich nur eine andere linke Taste anstelle der Zurück-Taste erstellen konnte, aber ich fand es sauberer, einen Delegierten zu verwenden, plus, ich bekomme eine "echte" Schaltfläche zurück, was ich will.
Y gültig ist u wollen Sequenz didPopItem Methode aufrufen, bevor Navigationsleiste Pop-Animation als u writter 3. paragrah..What u hatte wana kann u bitte zu tun machen Es ist klar, ur 3rd paragh whihc ist du denkst deine Hauptfrage –
Warum verwenden Sie eine separate Navigationsleiste mit einem 'UINavigationController' statt mit der, die es bietet? – Greg