Partage
  • Partager sur Facebook
  • Partager sur Twitter

[IOS] Affichage ViewController

COURS : Développez votre première application pour iOS

Sujet résolu
    20 août 2020 à 10:42:44

    Bonjour, j'ai un nouveau bloquage venant du cours : https://openclassrooms.com/fr/courses/2582746-developpez-votre-premiere-application-pour-ios/3854426-rendez-votre-app-encore-plus-interactive#/id/r-3890321 

    Je n'ai aucune erreur dans le code tout ce lance bien mais lorsque je vais sur le view controller (Navigateur) je n'ai rien qui s'affiche ?

    Une nouvelle fois j'ai suivis le cours à la lettre.

    J'ai bien lié les delegate, je comprend pas pourquoi rien ne s'affiche?

    (Ps: après avoir crée un nouveau view controller en copiant collant les items cela m'affiche juste le web view en gris mais les autres éléments ne sont toujours pas affichés) 

    -
    Edité par on_L'apprenti 20 août 2020 à 10:43:33

    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2020 à 13:30:00

      Salut,

      Je vois deux problèmes et demi: 

      - Utilise WKWebView. Ça doit bien faire 5 ans que UIWebView est deprecated

      - Tu as des problèmes de contraintes dans ton storyboard. Si tu as un logo rouge en haut à droite ne t’attend pas à un affichage correct. 

      - Ajouter une WebView dans le storyboard n’a jamais marché à ma connaissance. Il faut l’ajouter à la main dans le code. Mais ca a peut être été réparé, je ne le sais pas. 

      EDIT : Je pourrais aussi parler des NS...  L’equivalent Swift existe. Il suffit de supprimer NS 

      -
      Edité par Geda 20 août 2020 à 14:26:20

      • Partager sur Facebook
      • Partager sur Twitter
        20 août 2020 à 18:24:38

        Salut ,

        C'est bon j'ai fait comme tu m'as dis j'ai charger la page à partir du code et ça fonctionne nickel mais par contre ça prend tout l'espace, je me doute que ça se modifie ici mais je sais pas comment ?

        À et j'ai pas compris c'est quoi les NS ?

        EDIT: J'ai trouvé comment modifier le rectangle - AVEC :

        init(x: Int, y: Int, width: Int, height: Int)


        mais je ne sais pas comment faire pour le faire correspondre avec les autres éléments visuel (searchBar...)  

        Merci ;)

        -
        Edité par on_L'apprenti 20 août 2020 à 18:40:17

        • Partager sur Facebook
        • Partager sur Twitter
          20 août 2020 à 19:14:31

          Je parlais de NSURL, NSURLRequest etc. Ce sont des classes qui sont héritées d’Objective-C. L’équivalent SWIFT est URL et URLRequest tout simplement. 

          tu peux laisser frame à .zero.

          Override la méthode layoutsubviews (ou un truc comme ça   Si tu commences à taper ça l’IDE va te le proposer). C’est dans cette méthode que tu es censé modifier les frame de tes views. 

          Pour la searchbar tu peux créer un IBOutlet. Ensuite tu auras accès à searchBar.frame.maxY. Tu peux faire pareil avec view pour calculer la hauteur qu’est censé prendre la webview. 

          • Partager sur Facebook
          • Partager sur Twitter
            20 août 2020 à 21:37:24

            j'ai utilisé la méthode 
            override func viewDidLayoutSubviews()
            mais à partir de là je ne sais pas comment modifier les frame (je me doute qu'il faut utiliser WebView.frame.maxY (comme tu me l'as dit) mais apparemment faut pas faire égal ... exemple de ce que je dis :)
            ww.frame.maxY = 40


            • Partager sur Facebook
            • Partager sur Twitter
              20 août 2020 à 22:43:11

              ww.frame.origin.y = searchBar.frame.maxy

              ww.frame.size.height = view.frame.height - searchBar.frame.maxY

              pareil avec x et width : 0 et view.frame.width

              Tu peux aussi faire ww.frame = CGRect(...)

              Je suis sur telephone donc je ne formate rien désolé. 

              EDIT : c’est pas terrible ww comme nom. Nomme correctement les choses pour pouvoir t’y retrouver plus tard. Ça coûte pas plus cher de l’appeler webView si c’est une webView.

              dans le cours j’ai vu que pour les label il mettait souvent lName. C’est mieux d’écrire plus specifiquement ce que c’est : nameLabel.

              EDIT 2 : j’avais pas vu ton view = ww. Ne fait pas ça si tu veux mettre autre chose dans ton ViewController. Fais view.addsubview(webView). 

              ta ligne 14 n’a pas besoin d’être en var. tu peux initialiser directement ta webView (au lieu de le mettre dans le loadView. D’ailleurs tu pourrais complètement le supprimer je pense). Ça te fait un unwrapped optional en moins et une source de crash en moins. Plus qu’à le mettre en private et c’est parfait. 

              -
              Edité par Geda 20 août 2020 à 22:57:40

              • Partager sur Facebook
              • Partager sur Twitter
                23 août 2020 à 11:40:01

                Bonjour, Merci je vais faire tout ça 

                (ps: désoler je n'avais plus internet ...  bref)

                • Partager sur Facebook
                • Partager sur Twitter

                [IOS] Affichage ViewController

                × 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