Utilisation appropriée de loadView et viewDidLoad avec UIViewController sans plumes/xibs

Quand je programme sans une plume, je suis sous l'impression que j'ai besoin d'appeler loadView pour initialiser mon point de vue, comme ceci:

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

(J'ai mis nibNameOrNil = néant, car il n'y a pas de plume.)

Ensuite, j'ai mis la vue, comme ceci:

- (void) loadView {
    self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 367)];
    [self viewDidLoad];
}

C'est faire tout le reste dans le viewDidLoad.

Je ne sais toujours pas si je suis censé faire les appels à loadView et viewDidLoad de cette façon. Ils ne sont pas d'être appelé automatiquement.

Ce qui est déroutant, c'est dans la documentation de la classe UIViewController référence:

loadView Discussion

Vous devriez ne jamais appeler cette méthode directement. Le point de vue du contrôleur d'appels
cette méthode lorsque le point de vue de la propriété est demandé, mais est actuellement néant.
Si vous créez vos points de vue manuellement, vous devez remplacer cette méthode et
l'utiliser pour créer vos points de vue.
Si vous utilisez l'Interface Builder pour créer
vos points de vue et d'initialiser la vue-contrôleur—qui est, vous initialisez
la vue à l'aide de la initWithNibName:bundle: méthode, définir la nibName et
nibBundle directement des propriétés, ou de créer à la fois vos points de vue et vue
contrôleur d'Interface Builder—alors vous ne devez pas ignorer ce
méthode.

Donc, je ne comprends pas comment loadView est appelée si je ne devrais plus jamais l'appeler directement.

L'implémentation par défaut de cette méthode de recherche valide plume
l'information et l'utilise pour charger les associés plume de fichier.
Si aucune plume de l'information est spécifiée, la valeur par défaut de la mise en œuvre crée
une plaine UIView objet et rend la vue principale.

Je ne comprends pas comment cela fonctionne-la création d'une douleur UIView.

Si vous surcharger cette méthode pour créer votre point de vue manuellement,
vous devriez le faire et affecter la vue de la racine de votre hiérarchie pour l'
vue de la propriété. (Le point de vue que vous créez doit être unique instances et
ne doit pas être partagé avec un autre point de vue, contrôleur de l'objet.) Votre
personnalisé de mise en œuvre de cette méthode ne doit pas l'appeler super.

Si vous souhaitez effectuer toute autre initialisation de votre point de vue, ne
ainsi, dans la méthode viewDidLoad. Dans iOS 3.0 ou version ultérieure, vous devez également
remplacer le viewDidUnload méthode pour libérer toutes les références à la
vue ou de son contenu.

Bon, pour l'instant il ne dit pas comment viewDidLoad est appelé. Donc, pour viewDidLoad:

viewDidLoad Discussion

Cette méthode est appelée après le point de vue du contrôleur a chargé sa
les vues associées dans la mémoire. Cette méthode est appelée, que de
si les points de vue ont été stockées dans un fichier nib ou créé
par programme dans la méthode loadView. Cette méthode est la plus couramment
utilisé pour effectuer d'autres étapes d'initialisation sur les vues qui sont
chargé de plume fichiers.

Appelé par quoi?

Car Ces méthodes ne sont pas d'être appelé automatiquement dans mon code, je me suis laissé penser que je dois appeler moi-même. Mais je n'ai toujours pas d'obtenir une meilleure compréhension de la forme de la documentation que c'est la bonne chose à faire.

InformationsquelleAutor Draco | 2012-01-16