2010-08-02 10 views
0

Y a-t-il quelque chose de spécial à faire lorsque vous ajoutez un UIViewController dans une plume? Ma méthode -viewDidLoad n'est pas appelée, même si la puce est en cours de chargement et que sa sous-classe est définie dans IB à ma classe de contrôleur de vue.UIViewController chargé depuis la plume: -viewDidLoad n'étant pas appelé

http://dl.dropbox.com/u/448021/Test.zip

Il y a mon cas de test. Je n'arrive pas à comprendre pourquoi FooViewController -viewDidLoad n'est pas appelé.

Merci pour l'aide.

Répondre

0

Le FooViewController que vous avez créé ici ne sert à rien, si je vois les choses correctement. Dans MainWindow.xib, vous avez un contrôleur de navigation et votre propre RootViewController. Jusqu'ici tout va bien. Vous définissez la vue de cela dans RootViewController.xib. Correcte aussi. Mais le contrôleur de vue dans cette dernière xib ne fera rien, jusqu'à ce que vous faites quelque chose comme

[self.navigationController pushViewController:detailViewController animated:YES]; 

(qui est dans votre didSelectRowAtIndexPath)

L'commenté part à didSelectRowAtIndexPath invoque essentiellement une nouvelle viewcontroller lorsqu'un utilisateur sélectionne une rangée, et le fait lors du chargement du fichier xib associé, qui est chargé dans cette ligne:

DetailViewController *detailViewController = [[DetailViewController alloc] 
               initWithNibName:@"Nib name" bundle:nil]; 

vous pouvez également créer le viewcontroller dans un fichier nib, comme vous avez maintenant, mais vous aurez alors besoin de définir un

IBOutlet FooViewController *fooVC; 

et un lien qui au sein de IB, puis poussez ce fooVC sur la pile de vue lorsque l'utilisateur sélectionne quelque chose - dans ce cas, vous passez la ligne alloc/init ci-dessus.

0

Ajouter une vue à FooViewController. Accédez simplement au constructeur de l'interface et faites glisser une vue vers FooViewController.

Questions connexes