Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonctionnement View et UIViewController

    11 février 2021 à 17:59:00

    Bonjour,

    Je fais ce post pour comprendre un peu mieux le fonctionnement de View et UIViewController.

    De ce que j'ai compris :

    View est une classe permettant d'instancier des objets graphiques et qui nous servira donc pour afficher des choses à l'écran.

    UIViewController a pour attribut (variable de classe) une view et nous permet d'intégrer du code à la suite des méthodes pré-définies de UIViewController. Par exemple :

    Une méthode prédéfinie appuieBouton(UIButton) a été créé pour enregistrer l'appui sur le bouton en paramètre et nous permettre de mettre du code à la suite pour réagir à l'appui sur ce bouton. De ce que j'ai compris cette méthode appuieBouton est en fait une action.

    Donc tout d'abord je voulais savoir si cette image que j'avais en tête est la réalité. 

    Aussi je voudrais savoir comment se passe le lien entre View et l'UIViewController : comment la View "sait" qu'elle doit obéir à cet UIViewController (est-ce vraiment car c'est un attribut de classe ou autres ?) et aussi à quoi correspond dans le code les connexions que l'on fait de type Outlet Action ... (est-ce que ça devient des attributs de la classe UIViewController aussi ?)

    Merci de vos réponses :)

    • Partager sur Facebook
    • Partager sur Twitter
      12 février 2021 à 10:22:35

      Salut,

      View n’est pas une classe. UIView en est une. 
      UIView est un Objet sans rien de très spécifique pouvant contenir d’autres vues ou rien du tout. Selon les besoins. Toutes les vues un peu plus spécifique tels que UIStackView heritent de UIView. Tu peux également faire tes propres sous classes si tu veux un comportement spécifique. 
      Les IBOutlets et IBAction sont connectés à la vue et non au ViewController.

      Le ViewController possède la vue. Il fait ce qu’il en veut (C’est caché dans UIKit ceci dit). Une vue peut également en posséder une autre. 
      Quant aux connexions, je ne sais pas trop. 

      • Partager sur Facebook
      • Partager sur Twitter
        12 février 2021 à 13:09:38

        Geda a écrit:

        Salut,

        View n’est pas une classe. UIView en est une. 
        UIView est un Objet sans rien de très spécifique pouvant contenir d’autres vues ou rien du tout. Selon les besoins. Toutes les vues un peu plus spécifique tels que UIStackView heritent de UIView. Tu peux également faire tes propres sous classes si tu veux un comportement spécifique. 
        Les IBOutlets et IBAction sont connectés à la vue et non au ViewController.

        Le ViewController possède la vue. Il fait ce qu’il en veut (C’est caché dans UIKit ceci dit). Une vue peut également en posséder une autre. 
        Quant aux connexions, je ne sais pas trop. 


        D'accord je vois mais donc UIView est un attribut de ViewController en quelque sorte. Mais donc du coup les IBOutlets/Action forment une connexion entre la vue du contrôleur et quoi d'autres ?

        Et un contrôleur ne contrôle qu'une seule vue c'est bien ça. Quand je dis une seule vue je parle du conteneur dans lequel on peut placer des sous-vues comme les boutons etc...

        • Partager sur Facebook
        • Partager sur Twitter
          12 février 2021 à 14:04:12

          Non. UIView c’est un composant d’UIKit. Tout comme UIViewController. Il s’avère qu’un viewController possede une vue. Mais ça n’implique rien sur la relation UIViewConttoller - UIView dans le sens classe. Une vue peut posseder plusieurs vue. Ça n´en fait pas un viewController pour autant. Et tu peux creer des Vues dans des fichiers .xib qui ne sont pas liées à un .storyboard et donc a un ViewController   

          Les IBOutlet ne sont pas forcément rattaché a la vue d’un ViewController. Tu peux en avoir dans toutes les vues, comme une cellule d’un tableau par exemple   

          Pour le dernier paragraphe : Oui 

          • Partager sur Facebook
          • Partager sur Twitter

          Fonctionnement View et UIViewController

          × 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