web-dev-qa-db-fra.com

Comment ajouter une barre d'outils au bas d'un UITableViewController dans les storyboards?

Dans mon UITableView que j'ai configuré à l'aide de Storyboards, je dois pouvoir ajouter une barre d'outils qui colle au bas de la vue, elle ne devrait pas défiler.

Contrairement à cette question: LINK Je ne pense pas que je pourrais ajouter une sous-vue TableView à une vue normale, puis simplement ajouter une barre d'outils par programme car j'utilise des cellules dynamiques qui semblent beaucoup plus faciles à intégrer via les Storyboards.

Pour l'instant, c'est ce avec quoi je suis coincé .... enter image description here

35
vzm

si vous voulez afficher la barre d'outils dans un contrôleur de vue placé dans un contrôleur de navigation.

  1. sélectionner le contrôleur de vue dans le storyboard
  2. dans les utilitaires, affichez "inspecteur d'attributs". sélectionnez le style "barre inférieure".
  3. ajouter un élément de bouton de barre
  4. ajouter du code dans le contrôleur de vue, pour afficher et masquer la barre d'outils:

code:

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setToolbarHidden:NO animated:YES];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [self.navigationController setToolbarHidden:YES animated:YES];
}
76
Zoxaer

Très facile. Cliquez simplement sur le contrôleur de navigation. Puis dans Show Attributes Inspector puis contrôleur de navigation puis cliquez sur la barre d'outils shows. Vérifiez la capture d'écran.

Show Toolbar Screen Shot

26
Kegham K.

Pour les utilisateurs de Swift, vous pouvez utiliser le code suivant:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated);
    self.navigationController?.setToolbarHidden(false, animated: animated)
}

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated);
    self.navigationController?.setToolbarHidden(true, animated: animated)
}
16
Keith Holliday

Ce remède fonctionne pour (2016) iOS 9.2. Nous détestons tous la façon dont Apple nous fait perdre du temps dans des trucs qui devraient être simples comme celui-ci. J'aime les solutions étape par étape pour ce type de problèmes stupides, donc je vais le partager avec vous!:

  1. Sélectionnez votre contrôleur de vue> Inspecteur d'attributs> Sélectionnez "Barre d'outils opaque"
  2. Maintenant, faites glisser et déposez un élément "Bar Button" sur votre Storyboard.
  3. Sélectionnez votre élément de bouton de barre nouvellement déposé> Inspecteur d'attribut> Icône système> Sélectionnez votre icône préférée.
  4. Dans la méthode viewDidLoad () de votre contrôleur View, ajoutez ce code avant toute autre chose:

    override func viewDidLoad(animated: Bool) {
        self.navigationController?.setToolbarHidden(false, animated: true)
    

    // le reste du code}

  5. Vous ne voulez pas que cette barre d'outils traîne ailleurs, alors ajoutez-la à votre vue pour la masquer une fois la fenêtre actuelle fermée:

-

 override func viewWillDisappear(animated: Bool) {
                super.viewWillDisappear(animated);
                self.navigationController?.setToolbarHidden(true, animated: animated)

        }

Voila!

9
Josh
  1. Faites glisser un UIViewController dans Storyboard
  2. Faites glisser une barre d'outils UIT sur le contenu du Storyboard.
  3. Faites glisser une UITableView sur le contenu du Storyboard.
  4. Liez le délégué et la source de données de tableview à votre code source.

Bien que vous ne puissiez pas utiliser UITableViewController, l'étape 4 de votre classe de liaison vous permettra de la lier à un UIViewController normal.

Vous aurez besoin de quelque chose comme ça dans l'en-tête

@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

Cela ressemblera à quelque chose comme ceci dans votre storyboard:

enter image description here

5
David Wong

J'ai utilisé un View Controller intermédiaire avec une vue Container sur la table. Ajoutez la vue de la barre d'outils à l'intermédiaire et donnez-lui l'apparence que vous souhaitez (utilisez UIButtons au lieu de UIBarButtonItem).

Si vous faites cela, faites étirer la vue du conteneur vers le haut de l'écran et non vers le bas de la barre de navigation ou vous vous tirerez les cheveux en essayant d'obtenir les encarts de défilement à droite.

Quelques détails supplémentaires dans une question similaire https://stackoverflow.com/a/31878998/1042111

1
Brian Broom