Question

Dans iPhone OS 3.0, vous pouvez définir les éléments de la barre d'outils d'un UINavigationController en utilisant la méthode de setToolbarItems:animated:. Cependant, cela vous oblige à passer dans un tableau de UIToolbarItems. Alors que je pouvais créer ces éléments par programme barre d'outils, je préfère les créer dans Interface Builder si possible.

Dans cet esprit, j'ai créé un UIToolbar dans « MyGreatViewController.xib » et ont peuplé les éléments barre d'outils recherchés. Puis, dans « MyGreatViewController.m », je reçois les articles de la barre d'outils et de les transmettre à setToolbarItems:animated::

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setToolbarItems: [toolbar items]];
}

... où toolbar est un IBOutlet référant à la UIToolbar.

Est-ce une bonne approche? Y at-il une meilleure façon d'y arriver? Devrais-je créer les éléments par programme?

Était-ce utile?

La solution

Il est une parfaite manière acceptable de le faire, mais gardez à l'esprit que le chargement des fichiers XIB au catalogue est assez cher sur l'iPhone, et il peut bien être plus rapide pour créer programatically les éléments de la barre d'outils dans votre méthode viewDidLoad.

Autres conseils

Je ne sais pas si cela est documenté nulle part, mais je l'ai trouvé que dans Interface Builder, si vous activez la barre d'outils du contrôleur de navigation, vous pouvez faire glisser des éléments de barre à votre contrôleur de vue, et ils vont montrer automagiquement dans la la barre d'outils du contrôleur de navigation.

Par exemple, voici ce que nous pouvons faire (en utilisant Xcode 3.2 sur Snow Leopard):

  1. Fichier-> Nouveau projet .... Choisissez Application de navigation à- et créer le projet.
  2. MainWindow.xib Open in Interface Builder.
  3. Sélectionnez le contrôleur de navigation et dans l'inspecteur Attributs, cochez la case « Affiche la barre d'outils ». Cela fera apparaître un objet barre d'outils.
  4. Faites glisser un bouton de la barre élément de la bibliothèque à la barre d'outils. Il apparaît dans la barre d'outils. Si vous cochez la hiérarchie dans le NIB, vous verrez que ce nouvel élément est un enfant du RootViewController.

Il semble que tous les éléments de bouton de Bar ajoutés comme enfants de l'élément de navigation apparaîtra dans la barre de navigation, et tous les éléments de bouton de la barre ajouté que les enfants du contrôleur de vue sera affiché dans la barre d'outils.

(je suis tombé sur ce par accident. Si quelqu'un peut trouver de la documentation de ce comportement, ou toute information supplémentaire, je voudrais entendre parler.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top