Comment mettre en œuvre une statique de la cellule avec Swift 3
Je ne pouvais littéralement pas à trouver un tutoriel simple qui m'a montré comment créer une application qui utilise des cellules statiques; avec cliquable cellules. Basé sur des années, daté affiché et de l'objet-c réponses, j'ai mis quelque chose ensemble. Mon problème est que quand je clique sur une cellule, je reçois staticDemoTableCell
est n'a pas de membre present
.
J'ai intégré une Table de Contrôleur dans mon UIViewController. Pour que la cellule (le seul à ce jour), j'ai créé une classe:
class staticDemoTableCell: UITableViewCell, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
override func awakeFromNib() {
[...]
tableView.delegate = self
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("clicked") //Works when the cell is clicked
//self.present() do not work. I need to present another viewcontroller when this cell is clicked
}
}
Quelque chose de ne pas s'asseoir droit, pour chaque cellule est une classe?
J'ai vraiment besoin de savoir si je suis la bonne façon de le faire. Ce que je veux vraiment, c'est plus pour ce tel. Avez-vous vu ie: les transactions groupées, lundi: une liste, mardi: de liste, etc. Chaque cellule sera cliquable tout comme les paramètres de votre appareil iOS. Tous les pointeurs seront très reconnaissants.
UITableViewDelegate
(parce que vous avez plusieurs cellules, mais la vue de la table ne peut avoir qu'un délégué). Généralement la-vue-contrôleur (et uniquement si vous définissez la delegate
de la vue de la table en conséquence).Merci pour cela.
"Quelque chose n'a pas s'asseoir droit, pour chaque cellule est une classe?" si ce n'était pas clair à partir de la réponse ci-dessous (et mon commentaire ci-dessus), non, vous n'avez pas besoin (ni envie, la plus probable) de différentes classes pour les cellules. En fait, vous n'avez pas besoin d'un
UITableViewCell
sous-classe. C'est vraiment puissant pour la dynamique des cellules, mais pour statique de la table, c'est tout à fait inutile.Pensez à la section Paramètres (app) de votre appareil iOS, ce n'est pas que les cellules statiques? Lorsque vous cliquez sur une cellule, vous obtenez différents VCs. Excusez mes questions, j'ai juste commencé à apprendre et de trouver qu'il est difficile de trouver des tutoriels avant de poser de telles questions.
Concernant la façon de faire la transition de l'entaille sur la statique de la cellule à la scène suivante, et chaque cellule vous emmène à la scène différente, alors il est plus facile d'utiliser enchaîne à droite de l'IB par les cellules pour les différentes scènes. Vous obtenez votre INTERFACE utilisateur avec moins de programmation. Mais si vous avez une douzaine de cellules statiques pouvez-vous prendre du même "côté scène", alors plutôt que d'avoir une dizaine enchaîne à partir de cellules différentes de la même scène suivante, je serais au lieu d'avoir un seul segue à côté de la scène, et alors le
didSelect
par programmation effectuer que seule transition pour tous les correspondants personnalisés cellules.OriginalL'auteur Sylar | 2017-01-15
Vous devez vous connecter pour publier un commentaire.
Il est beaucoup plus facile si le tableau contient seulement cellules statiques:
Content
àStatic Cells
IBOutlet
s etIBAction
s dans la classe de contrôleur et de les connecter.IBOutlets
sont connectés, mais je n'ai pas toutIBAction
; pas de boutons. Une cellule doit être cliquable qui me prend à la x-vue-contrôleur. Comment?Je n'ai jamais essayé moi-même mais n'a pas le délégué
didSelect...
(mis en œuvre dans le contrôleur)?Oui, cela fonctionne. J'ai eu l'impression. L'objectif est de naviguer vers un autre point de vue contrôleur.
self.present
ne fonctionnent pas. Je supposepresent
ne fonctionne que dans un uiviewcontroller? Je sais que quelque chose ne va pas ici.Vous pouvez utiliser performSegue(withIdentifier...) si vous avez une séquence à partir de la vue contenant la vue de la table à l'autre-vue-contrôleur
Les cellules statiques sont utilisées comme les autres éléments de l'INTERFACE utilisateur (étiquettes, boutons, etc.). Il n'y a pas de source de données, les méthodes de
cellForRow...
etnumberOfRows...
.OriginalL'auteur vadian
De sorte que vous pouvez effectuer les opérations suivantes. Définir votre vue de la table, puis de rendre les cellules statique, une fois que vous avez fait cela, vous devez vous assurer que vous savez combien d'articles que vous allez avoir. Cela dépend de votre conception ou ce que vous voulez atteindre.
Ensuite, vous pouvez faire quelque chose comme ceci:
Si vous avez plus d'une section, et à l'article 1 a plus d'une cellule. Et de l'article 2 n'a qu'une seule cellule.
Si vous avez une seule section avec deux cellules, vous pouvez faire quelque chose comme:
J'espère que cela vous aide à résoudre votre problème. Bonne chance
OriginalL'auteur J Arango