Partage
  • Partager sur Facebook
  • Partager sur Twitter

[iOS] utiliser la même recherche sur toutes les TableView

sans dupliquer de code

Sujet résolu
    26 juillet 2012 à 18:53:29

    Bonjour,

    j'ai une application ou j'ai plusieurs TableViews. J'ai défini une SearchTableViewController pour gérer la recherche, avec un UISearchDisplayController.

    Cette table marche bien, mais je voudrais étendre la recherche sur toutes les autres tables de mon application. Exactement comme dans l'application Musique, où peut-importe où que l'on soit dans l'application, la recherche est la même.

    Je cherche comment faire pour avoir la même gestion de la barre de recherche partout, sans avoir à dupliquer beaucoup de code. Faire une sous-classe de UISearchDisplayController ? Ou réappeler dans le code la Table view que j'ai faite pour la superposer ?

    Je suis un peu paumé, toute aide est la bienvenue,

    Merci!
    • Partager sur Facebook
    • Partager sur Twitter
      27 juillet 2012 à 4:45:59

      Tu peux faire une classe mère UITableViewController avec ton searchdelegate dedans et l'utiliser comme classe mère pour tous les tableview que tu veux.
      • Partager sur Facebook
      • Partager sur Twitter
        27 juillet 2012 à 9:46:50

        Citation : Horiel

        Tu peux faire une classe mère UITableViewController avec ton searchdelegate dedans et l'utiliser comme classe mère pour tous les tableview que tu veux.



        Pas vraiment parceque ça m'obligerait à réécrire les méthodes :
        - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
        - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
        - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
        - (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
        - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
        - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
        


        Donc en gros à réécrire pas mal de code.
        De ce que je comprends, une fois que le champ de recherche est actif, le UISearchDisplayController remplace la TableView actuelle par une autre TableView accessible par searchDisplayController.searchResultsTableView. Ce que je voudrais c'est définir une seule fois les paramètres de cette searchResultsTableView...
        • Partager sur Facebook
        • Partager sur Twitter
          28 juillet 2012 à 4:45:09

          Non justement, tu as juste à définir ces methodes dans ta classe mère avec un NSArray que tu initialisera dans chaque classe fille.

          Dedans chaque methodes tu utilise ce NSArray et le tour est joué.
          • Partager sur Facebook
          • Partager sur Twitter
            28 juillet 2012 à 13:40:37

            Une sorte de array "dataWhenNotInSearchingMode"...
            C'est pas bête, je vais essayer ça, je te tiens au courant.
            Merci.
            • Partager sur Facebook
            • Partager sur Twitter

            [iOS] utiliser la même recherche sur toutes les TableView

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown