0
votes

Utilisation du storyboard? .Instantiate renvoie l'erreur "Nil trouvé de manière inattendue"

J'obtiens une erreur lorsque j'utilise storyboard? .instantiate . Cela me donne cette erreur:

Thread 1: Erreur fatale: nul trouvé de manière inattendue lors du déballage d'une valeur facultative

et voici mon code:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let vc = storyboard?.instantiateViewController(withIdentifier: "SelectedViewController") 
             as? SelectedViewController
    vc?.name = imgArr[indexPath.row]
    self.navigationController?.pushViewController(vc!, animated: true)
}

et j'utilise déjà l'identifiant ID sur cette photo: p >

aller à la photo d'ici

S'il vous plaît, n'importe qui peut m'aider dans ce domaine problème.


2 commentaires

Comment initialisez-vous la variable de storyboard?


Le VC d'instanciation doit également être dans la hiérarchie, appelé à partir d'un VC qui a le point d'entrée ou vers le bas sur sa chaîne, sinon cela ne fonctionnera pas


3 Réponses :


1
votes

Déplacez la souris sur le champ de classe dans IB, puis cliquez sur Entrée, la vérification du module doit être cochée et vérifiez que vous avez correctement défini l'identifiant du storyboard

 entrez la description de l'image ici


1 commentaires

Merci cela fonctionne maintenant après avoir vérifié le "module hériter de la cible" :)



0
votes

SelectedViewController est-il dans le même storyboard que le contrôleur de vue de la vue de collection?

Je préfère toujours déballer les options avec une garde ou si vous le laissez pour éviter des plantages comme celui-ci. Vous pouvez utiliser:

   guard let viewController = storyboard?.instantiateViewController(withIdentifier: "SelectedViewController") as? SelectedViewController else { "return error here if wanted" return }
    viewController.name = imgArr[indexPath.row]
    self.navigationController?.pushViewController(viewController, animated: true)


1 commentaires

cela me donne une erreur appelée "Classe inconnue SelectedViewController dans le fichier Interface Builder."



0
votes

essayez le code ci-dessous:

let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vcTitles =  storyBoard.instantiateViewController(withIdentifier: "vcTitles") as! VCTitlesViewController
self.navigationController?.pushViewController(vcTitles, animated: true)


0 commentaires