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é ....
si vous voulez afficher la barre d'outils dans un contrôleur de vue placé dans un contrôleur de navigation.
code:
- (void)viewWillAppear:(BOOL)animated
{
[self.navigationController setToolbarHidden:NO animated:YES];
}
- (void)viewWillDisappear:(BOOL)animated
{
[self.navigationController setToolbarHidden:YES animated:YES];
}
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)
}
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!:
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}
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!
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:
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