2010-06-09 7 views

Répondre

1

initWithNibName:bundle: est l'initialiseur désigné et doit être utilisé pour l'initialisation personnalisée du contrôleur de vue. Vous devriez l'utiliser pour le code de la variable d'instance qui doit être exécuté une fois, lors de la création du contrôleur de vue, à l'exception des vues contrôlées par ce contrôleur de vue.

Les vues peuvent apparaître et disparaître au lancement de l'application. Par conséquent, vous souhaiterez peut-être initialiser la vue plus d'une fois à partir d'un objet contrôleur de vue. Vous devez placer le code d'initialisation de vue dans loadView si vous n'utilisez pas de pointe pour la vue ou viewDidLoad si vous utilisez une pointe.

0
- (void) viewDidLoad 
{ 
    [super viewDidLoad]; 

    //instantiate here... 
} 

Cette méthode est appelée lorsque la vue est prête. Vous pouvez l'utiliser.

Modifier

Hmm, avez-vous dire si vous instancier un UIViewController avec une propriété appelée, par exemple myVariable et vous voulez qu'il soit, disons, myVarible = @"Hello"; alors vous pouvez le faire sur l'instance, s'il s'agit d'une propriété synthétisée.

MyVC *viewController = [[MyVC alloc] initWithNibName:@"MyNibForMyVC" bundle:[NSBundle mainbundle]]; 
[viewController setMyVariable:@"Hello"]; 
0

Cela dépend de votre variable d'instance, je suppose.

Si la variable d'instance est visible depuis les clients de MyViewController, utilisez la suggestion de RickiG. S'il s'agit d'une variable d'instance auxiliaire utilisée uniquement par MyViewController, créez simplement votre propre version de initWithNibName:bundle: qui appelle la version super, et initialisez vos variables d'instance à cet endroit.