2010-12-03 13 views
3

Je dois implémenter une application basée sur la navigation avec une barre de boutons personnalisée qui reste sur la taille verticale de l'écran, similaire à l'application iPad Reeder (voir Reeder screenshot). Quelle est la meilleure façon d'atteindre ce résultat? J'ai pensé à ajouter la barre en tant que sous-vue de UINavigationController et en appelant ses méthodes (comme pushViewController: animated :) via la référence parentViewController à partir de mon contrôleur de vue de barre de boutons, mais cela semble un peu compliqué.UINavigationController avec barre de boutons verticale personnalisée

Répondre

0

Peut fonctionner, mais dangereux: définissez une transformation sur l'objet CALayer de UINavigationBar. Une transformation qui fait tourner la barre par "-1 * M_PI_2" serait presque correcte, vous pourriez avoir besoin de la translater de quelques pixels aussi, pour obtenir la position correcte.

fonctionne certainement, mais plus d'effort: rendre une barre de navigation personnalisée, implémenter le protocole de délégué de UINavigationController, et écouter le nav changer, et implémenter vos propres animations dans les rappels.

(je l'ai fait la dernière méthode pour fournir UINavigationBars personnalisés - bien cela fonctionne)

La seule mise en garde avec cette dernière méthode est que vos animations peuvent mettre en pause/retard car par défaut, ils attendent les uns des autres à la fin. Si vous regardez les animations UIView, il y a un paramètre qui dit "jouez immédiatement, même si d'autres animations sont en cours", et vous devrez peut-être régler cela sur YES.