UIToolbar sur chaque page d'un UINavigationController
J'ai une application qui s'exécute sur un UINavigationController. Maintenant, je voudrais ajouter une UIToolbar élément au bas de chaque écran. La Barre d'outils sur le fond doit l'être personnalisables pour le ViewController qui est actuellement affichée. Ma première idée était de simplement ajouter de la barre d'outils de la navigationController de la vue et de la balise, dans le viewController j'ai pensé que je ne puis être en mesure de récupérer la UIToolbar élément. J'ai le code suivant:
Dans mon AppDelegate:
//Get instance of Toolbar (navController is an instance of UINavigationController and TOOLBAR_TAG a constant)
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 440, 320, 40)];
toolbar.tag = TOOLBAR_TAG;
[navController.view addSubview:toolbar];
Dans mon viewController j'ai essayé ceci:
UIToolbar *toolbar = [self.navigationController.view viewWithTag:TOOLBAR_TAG];
toolbar.barStyle = UIBarStyleBlack;
Encore, cela me donne une erreur en disant que la barre d'outils dans mon cas, c'est un "UILayoutContainerView" objet, pas un UIToolbar objet. D'où cette idée semble être une impasse.
Comment les autres à résoudre ce problème?
OriginalL'auteur Robin | 2010-02-22
Vous devez vous connecter pour publier un commentaire.
UINavigationController a déjà une barre d'outils. Utilisez simplement
dans le supérieur-vue-contrôleur et
dans tous vos contrôleurs de vue, où les éléments est un
NSArray
de ce point de vue du contrôleur éléments de barre d'outils.EDIT: Comme pour pourquoi votre solution ne fonctionne pas: votre
TOOLBAR_TAG
est probablement pas unique, c'est pourquoi vous obtenez une autre sous-vue. Mais comme je l'ai dit, vous devez utiliser la barre d'outils inclus de toute façon.vous êtes les bienvenus. =) c'est dans le UINavigationController documentation, btw: developer.apple.com/iphone/library/documentation/UIKit/...
Vous pouvez remplacer votre UINavigationController pushController méthode pour éviter les copier/coller et fixer les éléments de barre d'outils ici.
comment le faire fonctionner pour l'iPad? J'utilise de l'écran à double affichage splitview et la manette de navigation. la barre d'outils n'apparaît jamais sur iPad, mais n'sur iPhone. Il ya quelque chose de mal, je suis en train de faire?
OriginalL'auteur Can Berk Güder
Pour afficher facilement la UINavigationController bas de la barre d'outils, vous pouvez cliquer sur "Afficher la Barre d'outils" dans la case qui est accessible à partir de l'inspecteur avec "Navigation Controller" objet sélectionné. J'espère que cela peut aider 🙂
OriginalL'auteur FredericK
À partir d'une conception de point de vue, je ne recommanderais pas ceci à MOINS que vous savez de la barre d'outils sera présent pour chaque vue dans la pile. La deuxième vous commencez à masquer/afficher la barre d'outils pour les différents points de vue dans la pile, vous verrez que cette animation (barre d'outils diapositives/avec vue) n'est pas animer comme vous vous attendez.
Si vous avez besoin de barres d'outils pour les vues de les mettre dans ces vues, depuis la barre d'outils contextuelle pour la vue, et non à la valeur liquidative de la pile dans son ensemble.
OriginalL'auteur eddit