Réglage de la Barre d'outils des Éléments de UINavigationController
De l'iPhone OS 3.0, vous pouvez définir les éléments de barre d'outils d'un UINavigationController à l'aide de la setToolbarItems:animated:
méthode. Cependant, cela nécessite un tableau de UIToolbarItems. Alors que je pouvais créer par programmation de ces éléments de barre d'outils, je préfère les créer dans Interface Builder, si possible.
Avec cela à l'esprit, j'ai créé un UIToolbar dans "MyGreatViewController.xib" et ont peuplé avec les éléments de barre d'outils. Ensuite, dans "MyGreatViewController.m", j'obtiens les éléments de la barre d'outils et les passer à setToolbarItems:animated:
:
- (void)viewDidLoad {
[super viewDidLoad];
[self setToolbarItems: [toolbar items]];
}
...où toolbar
est un IBOutlet se référant à la UIToolbar.
Est-ce une bonne approche? Est-il un meilleur moyen pour y parvenir? Devrais-je créer les articles par programmation?
OriginalL'auteur Steve Harrison | 2009-08-22
Vous devez vous connecter pour publier un commentaire.
C'est une très bonne façon de le faire, mais n'oubliez pas que le chargement de fichiers xib est assez cher de l'iPhone, et il pourrait bien être plus rapide pour créer les éléments de barre d'outils par programmation dans votre méthode viewDidLoad.
Ah, si vous êtes déjà chargement d'un XIB, alors vous ne sera pas ajouter trop de temps supplémentaire. Désarchivage des objets à partir d'un XIB est plus cher que de les créer dans le code, mais à moins que votre point de vue prend une éternité à charger, je ne vous inquiétez pas à ce sujet.
OriginalL'auteur iKenndac
Je ne sais pas si cela est documenté nulle part, mais j'ai trouvé que dans Interface Builder, si vous activez la manette de navigation de la barre d'outils, vous pouvez faire glisser les éléments de la barre à votre vue-contrôleur, et ils seront automatiquement apparaître dans la manette de navigation de la barre d'outils.
Par exemple, voici ce que nous pouvons faire (en utilisant Xcode 3.2 sur Snow Leopard):
MainWindow.xib
dans Interface Builder.RootViewController
.Il semble que tout le Bouton de Barre d'Éléments ajoutés comme des enfants de l'élément de navigation s'affichent dans la barre de navigation, et tout le Bouton de Barre d'Éléments ajoutés comme des enfants de la vue-contrôleur s'affichera dans la barre d'outils.
(Je suis tombé sur ce par accident. Si quelqu'un peut trouver de la documentation pour ce comportement, ou tout complément d'info, j'aimerais vous entendre à ce sujet.)
UIViewController
comme par magie de chargement c'est xib si elle correspond à un nom de fichier.Il fonctionne! C'est certainement la meilleure façon d'installer la barre d'outils en mode de navigation, je pense.
Dans mon application, j'ai un Onglet de la Barre de Contrôleur et de l'un des onglets est un navigationController - jolie configuration standard. Cependant, si je suis ce que Kristopher suggère, après l'étape 3, la barre d'outils qui apparaît derrière la Barre d'Onglet dans l'IB! Et quand j'essaie de l'étape 4 (j'ai essayé d'ajouter un segment de contrôle/bouton), il n'a tout simplement pas permettre à mon de les glisser sur la barre d'outils. Suis-je manqué quelque chose?
Je sais que c'est super vieux, mais avez-vous une idée de comment faire pour les sous-vues de la RootViewController? En d'autres termes, si dans RootViewController du code que j'ai créer un FooController qui est dans sa propre plume et le pousser, alors comment puis-je définir FooController de boutons de barre d'outils dans l'Interface Builder?
d'accord, je voudrais aussi savoir si il existe une solution à ce faire avec de l'IB
OriginalL'auteur Kristopher Johnson