Afficher des fichiers html locaux dans WKWebview

Bonjour à tous/toutes,
merci tout d’abord à Maxime pour l’excellence de son cours et ses capacités didactiques hors pair!
Débutant total, je me suis pris au jeu en suivant le cours iOS11/xCode 9 en essayant de développer une petite application, mais je reste bloqué pour l’affichage de fichier html stockés en local que j’aimerai afficher dans une WKWebview. Il s’agit d’une application type tableview -> detailview. Aucun problèmes pour afficher la table, faire défiler les cellules, détecter quelle cellule est sélectionnée et passer cette information du premier ViewController au second. Dans le second, j’arrive à afficher dans la console le contenu de la cellule sélectionnée, le nom du fichier html que je voudrais montrer dans le WKWebview. J’arrive aussi à afficher des fichiers pdf stockés sur un site web, mais impossible d’afficher les fichiers html locaux (quelques pages et une css style sheet externe, le tout stocké dans le répertoire principal de l’application. J’ai essayé de les afficher avec

    let url = NSURL(fileURLWithPath: "test.html")
    let request = NSURLRequest(URL: url!)
    myWebView.loadRequest(request)

puis

if let pathToLoad = selectedPath{
    print (pathToLoad) //ça s'imprime dans la console sans problème
    print (selectedPath!) //ça s'imprime dans la console sans problème

if let path = Bundle.main.path(forResource: "\(pathToLoad)", ofType: "html") {
    myWebView.load( URLRequest(url: URL(fileURLWithPath: path)) )
}else {
print ("erreur") // je reçois ce message
return
}

puis (j’ai trouvé ce code sur un blog)

do {
guard let filePath = Bundle.main.path(forResource: pathToLoad, ofType: "html")
else {
print ("File reading error") // je reçois ce message
return
}
let contents =  try String(contentsOfFile: filePath, encoding: .utf8)
let baseUrl = URL(fileURLWithPath: filePath)
myWebView.loadHTMLString(contents as String, baseURL: baseUrl)
}
catch {
print ("File HTML error")
}

L’application se compile sans problèmes, mais ensuite, soit elle plante (unexpected nil value) soit rien ne s’affiche, alors que l’info arrive dans le 2ème viewController puisque j’arrive à afficher le nom du dossier dans la console…quelqu’un peut-il m’aider à y comprendre quelque chose???

Merci d’avance!

Je pense que tout vient du chemin de la ressource qui ne doit pas être bon.
Quel est le nom de la ressource html et où est-elle placée dans le projet ?

Bonjour Maxime et merci pour votre réponse, quelques explications qui vont je l’espère vous permettre de m’aider:

j’ai un array dans un view controller (sophopedTableViewController) qui contient des noms de documents html (j’ai essayé de les mettre avec l’extension ou sans l’extension) sous forme:

let SOPsOncPath = ["Ewing",
                   "Osteosarcoma"]

Un autre array contient des noms qui servent à peupler une table:

let SOPsOncNames=["Sarcomes d'Ewing",
                  "Ostéosarcomes"]

En cliquant sur les lignes dans la table, le but est d’ouvrir le document html dans un deuxième viewController qui contient une WKWebView. J’arrive à faire passer la ligne sélectionnée dans le 2ème viewController en utilisant un segue (le print(selectedPath!) fonctionne dans la console), mais quand j’essaie ensuite d’aller cherche le document, j’ai un runtime error (ça compile sans problème) qui me dit:

fatal error: unexpectedly found nil while unwrapping an Optional value
2017-09-15 14:12:41.191376+0200 SOPHOPED[20408:2563367] fatal error: unexpectedly found nil while unwrapping an Optional value

Les documents html sont stockés dans le dossier principal et sont nommés Ewing.html et Osteosarcoma.html

voilà le code dans le 2ème viewController qui est sensé afficher le document sélectionné:

override func viewDidLoad() {
    super.viewDidLoad()
        if let pathToLoad = selectedPath
        {
         print(selectedPath!)
         let myUrl = Bundle.main.url(forResource: "\(pathToLoad)", withExtension: "html")
         let myUrlRequest: NSURLRequest = NSURLRequest(url:myUrl! as URL)
         myWebView.load(myUrlRequest as URLRequest)
        }

je reçois cette info à côté de la ligne “let myUrlRequest: NSURLRequest = NSURLRequest(url:myUrl! as URL)”

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

voilà…il semble y avoir un problème de variable optionnelle, mais je ne comprends pas où est le problème…merci infiniment pour votre aide!!

Ces fichiers html sont bien dans le projet ?
Il faudrait le donner le résultat du print pour selectedPath et aussi pour myUrl pour que j’arrive mieux à comprendre.