Bah non. Si tu insistes à créer la tableView en code tu devrais déplacer le code de création vers viewDidLoad() pour que tu ne la crées qu'une seule fois.
Mais je ne vois pas à quel moment remove superView ?
Edit:
de toute façon si je passe par le viewDidLoad() plus besoin de removeSuperview.... mais mon soucis de concaténation des datas dans tableView est toujours là , je vois pas trop comment supprimé les veilles données pour afficher les nouvelles en fait, je t'ai lus, mais datasource devrais refresh avec les nouvelles données, je comprends pas.
mais mon soucis de concaténation des datas dans tableView est toujours là , je vois pas trop comment supprimé les veilles données pour afficher les nouvelles en fait, je t'ai lus, mais datasource devrais refresh avec les nouvelles données, je comprends pas.
func pushButton(_ sender: UIButton)
{
guard var connexion = ConnexionSQLite.sharedInstance else
{
print("Erreur de connexion")
return
}
connexion.getDataTables(table:sender.currentTitle! as String)
self.datatable = [ ]
for data in connexion.arrayData
{
print(data)
self.dataTable.append(data)
}
J'ai bien pensée à faire comme toi, rendre mon tableau vide, mais je trouvais ça "Sale"( je ne me fait vraiment pas assez confiance ... 🙄) , n'y a t il rien de natif pour reset les lignes d'une UItableView ? Un genre de remise à zéro du contenu ?
Comme j'ai déjà dit, plusieurs fois, la tableView ne "contient" pas de données. En appelant tableView.reloadData(), ça la "vide" et recommence à appeler les méthodes du dataSource pour la remplir comme et quand nécessaire.
N'oublies pas, si tu as 100 articles à montrer dans la tableView, la tableView ne contient jamais plus qu'assez pour remplir les rangs visibles plus deux ou trois pour être prêt quand l'utilisateur scroll. Donc si tu avais 10 rangs visibles, la tableView ne chargerait que 12-14 au même temps.
J'ai juste mon idée/mon point de vu, je ne suis pas têtu dans le mauvais sens
J''espère que tu as compris mon point de vue par rapport à mon choix de ne pas utiliser le stroyboard.
Maintenant je vais re faire entièrement mon projet en utilisant storyboard !
Du moment que je n'ai pas ma tableView qui s'affiche au lancement de mon application mais bien quand moi je le souhaite (clique d'un bouton) je suis ok
Comme ça je verrais la différence et rien n'est perdu en développement, j'aurais appris encore beaucoup grace à vous !
Question:
Comment vérifié si justement j'ai un empilement d'objet dans ma vue ?
Xcode à un débug poussé et complexe... Mais il m'avait semblé avoir déjà vu une simulation (un outil natif Xcode) ) où l'on voit bien les divers objets en 3D (après est-ce en action ou de façon static je ne sais pas !)
Edit:
Dans l'outil "debug navigator"
j'ai la mémoire ram de mon application qui "grimpe" à 23Mo mais reste stable, quand je clique sur mes boutons, est ce normal un "tel" niveau de ram pour une si petite application ?
Comment vérifié si justement j'ai un empilement d'objet dans ma vue ?
Xcode à un débug poussé et complexe... Mais il m'avait semblé avoir déjà vu une simulation (un outil natif Xcode) ) où l'on voit bien les divers objets en 3D (après est-ce en action ou de façon static je ne sais pas !)
J''espère que tu as compris mon point de vue par rapport à mon choix de ne pas utiliser le stroyboard.
Désolée, la seule raison que j'ai pu trouver était que tu n'avais pas encore compris comment marche les UITableViews. 8--)
Maintenant je vais re faire entièrement mon projet en utilisant storyboard !
Mais, n'oublies pas d'utiliser l'autolayout et les contraintes de positionnement :-*
j'ai la mémoire ram de mon application qui "grimpe" à 23Mo mais reste stable, quand je clique sur mes boutons, est ce normal un "tel" niveau de ram pour une si petite application ?
Mon app FestJazz plane autour de 50-60Mo. Ce n'est pas grave. Mais si tu la voyais grimpant chaque fois que quelque de répétitive se passe, ça c'est un drapeau rouge
Je vous ai écouté et ai tout refait via storyboard
Ayant toujours ma boucle qui construit à la volé mes boutons par rapport à mes tables en base (ça je veut le garder)
je rencontre un soucis avec "segue", voici mon architecture :
un NavigationController (qui est le point d'entrée) qui affiche une UIViewController qui contient la boucle de mes boutons et une autre vue, un TableViewController qui contiendra les datas (provenant du mon 1er UIViewController) à afficher dans ce TableViewController. Via, le clique d'un bouton (lui passant le sender)
Jusqu'à là , ok. Mais là ou je rencontre des difficultés est pour donner une segue à la ma TableViewController, afin de pouvoir l'afficher avec mes données au clique du bouton "table" sélectionner.
je re précise que je souhaite le faire de façon programmatique, sinon je pourrais via le storyboard via la création d'objets UIButton, hors je les créer via une boucle (code)
dans mon UITableViewController "TableViewController" :
viewDidLoad() :
// J'affecte la segue "tableViewController" à ma tableView
self.performSegue(withIdentifier: "tableViewController", sender: self)
Et dans mon UIViewController "MainViewController" (point d'entrée) :
// pour exécuter l'envoies de mes données
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if segue.identifier == "tableViewController"
{
let tableViewController = TableViewController()
tableViewController.table = self.table
}
}
merci
Edit:
Je précise aussi que dans mon storyboard toutes mes vues on un classe d'associées.
Edit 2:
voici, mais je sais pas passé mon sender directement (comme avec la "segue")à la cette vue ? Et surtout le linker à mon navigationController pour profiter de la navigation...
let vc = TableViewController()
self.present(vc, animated: true, completion: nil)
Tout d'abord, à la place de construire les boutons à la volée dans la première viewController, pourquoi pas utiliser une tableViewController, que tu puisse remplir avec une cellule par nom de table. Là tu pourrais répondre à un click sur une de ces cellules, en déclenchant un segue vers la tableView controller, qui contiendrait le contenu de la table choisi ?
oui je le fais déjà pour la tableViewController, mais je n'aime pas le design de la scroll pour "juste" 5 ou6 boutons.
Et puis si je veux faire plusieurs colonnes (via du code) de boutons je ne pourrais pas avec un TableViewController...
car le but est que cette app soit complètement dynamique (je change juste la base sql) et tout fonctionne plug and play
tu vois ?
Sinon, pour tagé (segue, en codant) une vue on fait comment ? Que je puisse bénéficier de la NavigationController depuis ma TableView, pour avoir le bouton "back" .
OK. À la place d'une tableViwController, tu pourrais utiliser une UICollectionViewController, dont tu peux arranger les cellules en rangs de colonnes, ou colonnes de rangs, ou n'importe quel agencement que tu puisses imaginer.
Tu dois avoir un title pour le navigationItem de la première UICollectionViewController pour que le backButton de la UITableViewController montre le title de la première dans le backButton
Réponses
oui, tu as entièrement raison et je comprends mieux ta réponse
J'avais pas pensée à ça...
par contre je comprends le reste de ton post :
Du coup, je dois utilisé "tableView.removeFromSuperview()" en tout début de ma méthode sender et la finir par un tableView.reloadData() :
alors j'ai tout migré dans le viewDidLoad()
Mais je ne vois pas à quel moment remove superView ?
Edit:
de toute façon si je passe par le viewDidLoad() plus besoin de removeSuperview.... mais mon soucis de concaténation des datas dans tableView est toujours là , je vois pas trop comment supprimé les veilles données pour afficher les nouvelles en fait, je t'ai lus, mais datasource devrais refresh avec les nouvelles données, je comprends pas.
N'oublies pas, si tu as 100 articles à montrer dans la tableView, la tableView ne contient jamais plus qu'assez pour remplir les rangs visibles plus deux ou trois pour être prêt quand l'utilisateur scroll. Donc si tu avais 10 rangs visibles, la tableView ne chargerait que 12-14 au même temps.
J'ai juste mon idée/mon point de vu, je ne suis pas têtu dans le mauvais sens
J''espère que tu as compris mon point de vue par rapport à mon choix de ne pas utiliser le stroyboard.
Maintenant je vais re faire entièrement mon projet en utilisant storyboard !
Du moment que je n'ai pas ma tableView qui s'affiche au lancement de mon application mais bien quand moi je le souhaite (clique d'un bouton) je suis ok
Comme ça je verrais la différence et rien n'est perdu en développement, j'aurais appris encore beaucoup grace à vous !
Question:
Comment vérifié si justement j'ai un empilement d'objet dans ma vue ?
Xcode à un débug poussé et complexe... Mais il m'avait semblé avoir déjà vu une simulation (un outil natif Xcode) ) où l'on voit bien les divers objets en 3D (après est-ce en action ou de façon static je ne sais pas !)
Edit:
Dans l'outil "debug navigator"
j'ai la mémoire ram de mon application qui "grimpe" à 23Mo mais reste stable, quand je clique sur mes boutons, est ce normal un "tel" niveau de ram pour une si petite application ?
https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/debugging_with_xcode/chapters/special_debugging_workflows.html
Yep
merci, je vais voir ça, avant que je reprenne le développement IOS/Xcode cela n'existait pas ... (ou alors je ne connaissait)
Du coup cela fonctionne uniquement avec le .... storyboard :P
bon, je vais me mettre à ce storyboard, je sais que c'est plus rapide et sécurisé... pas de soucis
Ou, de mon avis, mieux et plus compréhensif, Reveal https://revealapp.com
Merci ! tout ceci à l'air plus que complet et puissant...
J'ai encore beaucoup à voir
Oui, mais 59$ HT quand même ..
Bon, c'est rien pour un usage professionnel.
oui
J'avais remarquer après avoir dis merci à Joanna Carter
mais visiblement une version d'évaluation est dipso, à voir ce quelle propose vraiment... Si c'est full pendant un temps limité, ou juste limité.
Bref, je ne suis pas un PRO (ça vous l'avez bien remarquer), donc le prix pique pour moi.
Edit:
Que pensez vous de ce tuto sous swift:
http://www.supinfo.com/articles/single/903-tutoriel-segue-apps-ios-swift
Est il à jour, sérieux ? Je peut reprendre sereinement avec lui ? maintenant que j'ai le concept pour mon application.
Désolée, la seule raison que j'ai pu trouver était que tu n'avais pas encore compris comment marche les UITableViews. 8--)
Mais, n'oublies pas d'utiliser l'autolayout et les contraintes de positionnement :-*
Mon app FestJazz plane autour de 50-60Mo. Ce n'est pas grave. Mais si tu la voyais grimpant chaque fois que quelque de répétitive se passe, ça c'est un drapeau rouge
Quand-même, ça pourrait montrer plus d'infos sur l'autolayout, quelque chose qui fait trébucher pas mal de débutants ???
C'est très simple et il manque l'autolayout. Même s'il est en anglais, tu pourrais profiter de ce tuto sur autolayout : https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2
https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/debugging_with_xcode/chapters/special_debugging_workflows.html
Si la version d'évaluation est suffisante je vais voir ça, dans le cas contraire, ça sera sans moi.
Pour ton tuto, l'anglais technique c'est pas trop un soucis pour moi !
si tu me le conseil en plus, je fonce
Merci,
En regardant le auto, tu verras ce qui se passe, lors de la rotation, si on n'utilise pas l'autolayout ; c'est pas jolie ::)
Bonjour,
Je vous ai écouté et ai tout refait via storyboard
Ayant toujours ma boucle qui construit à la volé mes boutons par rapport à mes tables en base (ça je veut le garder)
je rencontre un soucis avec "segue", voici mon architecture :
un NavigationController (qui est le point d'entrée) qui affiche une UIViewController qui contient la boucle de mes boutons et une autre vue, un TableViewController qui contiendra les datas (provenant du mon 1er UIViewController) à afficher dans ce TableViewController. Via, le clique d'un bouton (lui passant le sender)
Jusqu'à là , ok. Mais là ou je rencontre des difficultés est pour donner une segue à la ma TableViewController, afin de pouvoir l'afficher avec mes données au clique du bouton "table" sélectionner.
je re précise que je souhaite le faire de façon programmatique, sinon je pourrais via le storyboard via la création d'objets UIButton, hors je les créer via une boucle (code)
dans mon UITableViewController "TableViewController" :
Et dans mon UIViewController "MainViewController" (point d'entrée) :
merci
Edit:
Je précise aussi que dans mon storyboard toutes mes vues on un classe d'associées.
Edit 2:
voici, mais je sais pas passé mon sender directement (comme avec la "segue")à la cette vue ? Et surtout le linker à mon navigationController pour profiter de la navigation...
Tout d'abord, à la place de construire les boutons à la volée dans la première viewController, pourquoi pas utiliser une tableViewController, que tu puisse remplir avec une cellule par nom de table. Là tu pourrais répondre à un click sur une de ces cellules, en déclenchant un segue vers la tableView controller, qui contiendrait le contenu de la table choisi ?
oui je le fais déjà pour la tableViewController, mais je n'aime pas le design de la scroll pour "juste" 5 ou6 boutons.
Et puis si je veux faire plusieurs colonnes (via du code) de boutons je ne pourrais pas avec un TableViewController...
car le but est que cette app soit complètement dynamique (je change juste la base sql) et tout fonctionne plug and play
tu vois ?
Sinon, pour tagé (segue, en codant) une vue on fait comment ? Que je puisse bénéficier de la NavigationController depuis ma TableView, pour avoir le bouton "back" .
Merci, d'accord je vais voir de ce coté !
mais juste pour savoir, pas de navigation barre avec une TableViewController ? (le bouton "back)
une fois cliquer sur ma table(bouton) je me retrouve sur la TableViewController dans l'impossibilité de faire back...
Tu dois avoir un title pour le navigationItem de la première UICollectionViewController pour que le backButton de la UITableViewController montre le title de la première dans le backButton
https://developer.apple.com/reference/uikit/uinavigationcontroller