141 votes

Comment charger une UIView à l'aide d'un fichier nib créé avec Interface Builder ?

J'essaie de faire quelque chose d'un peu élaboré, mais qui devrait être possible. Voici donc un défi pour tous les experts (ce forum est composé de beaucoup d'entre vous :) ).

Je suis en train de créer un "composant" de questionnaire, que je veux charger dans un fichier de type NavigationContoller (mon QuestionManagerViewController ). Le "composant" est un "vide". UIViewController qui peut charger différentes vues en fonction de la question à laquelle il faut répondre.

La façon dont je le fais est :

  1. Créer l'objet Question1View comme un UIView en définissant des IBOutlets .
  2. Créez (à l'aide de l'Interface Builder) le Question1View.xib (C'EST LÀ QUE SE SITUE PROBABLEMENT MON PROBLÈME ). J'ai réglé les deux UIViewController et le UIView pour être de la classe Question1View.
  3. Je lie les points de vente avec le composant de la vue (en utilisant IB).
  4. Je passe outre la initWithNib de mon QuestionManagerViewController pour ressembler à ça :

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
        if (self = [super initWithNibName:@"Question1View" bundle:nibBundleOrNil]) {
            // Custom initialization
        }
        return self;
    }

Lorsque j'exécute le code, j'obtiens cette erreur :

2009-05-14 15:05:37.152 iMobiDines [17148:20b] * Fermeture de l'application en raison d'une exception non attrapée NSInternalInconsistencyException ', raison : ' -[UIViewController _loadViewFromNibNamed:bundle:] a chargé la plume "Question1View" mais la sortie de vue n'a pas été définie".

Je suis sûr qu'il existe un moyen de charger la vue en utilisant le fichier nib, sans avoir besoin de créer une classe viewController.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X