Si je substitue la méthode loadView, loadView sera appelé s'il existe un fichier nib. Si je ne surcharge pas loadView et qu'il y a un fichier nib, sera-t-il appelé?Est-ce que loadView sera appelé s'il y a un fichier nib?
Répondre
Oui, loadView
est chargé de charger automatiquement les fichiers nib à partir de groupes connus en fonction du nom de classe du contrôleur de vue. Si vous remplacez loadView
et n'appelez pas [super loadView]
, aucune pointe ne sera chargée. La classe UIViewController appelle loadView
lorsque sa propriété view
est appelée et est nulle.
Notez également que le remplacement de loadView
et l'appel de super n'est probablement pas ce que vous voulez. loadView
est pour définir la propriété self.view
, c'est tout. Tout le reste doit se produire dans viewDidLoad
etc.
Que faire s'il n'y a pas d'affichage dans le fichier nib? Est-ce que loadview sera appelé s'il y a une vue dans le fichier nib? – Terry
'loadView' est toujours appelé. Si la pointe n'a pas de propriété 'view' ou fait référence à des IBOutlets qui ne sont pas présents dans votre contrôleur de vue, une exception est levée. Je n'ai pas vérifié, mais je suis sûr que l'exception arrive quand 'loadView' appelle UINib après avoir trouvé une plume correspondant à son nom de classe ou en chargeant la plume spécifiée dans' initWithNibName: '. –
Oui:
@implementation iPhoneHomeViewController
- (void)loadView {
DEBUGLOG(@"view = %@, superview = %@", [self valueForKey:@"_view"], [[self valueForKey:@"_view"] superview]);
[super loadView];
}
Console:
GNU gdb 6.3.50-20050815 (Apple version gdb-1705) (Fri Jul 1 10:50:06 UTC 2011)
Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU
General Public License, and you are welcome to change it and/or distribute copies of it
under certain conditions. Type "show copying" to see the conditions. There is absolutely
no warranty for GDB. Type "show warranty" for details. This GDB was configured as
"x86_64-apple-darwin".sharedlibrary apply-load-rules all Attaching to process 1671.
[Line: 40] -[iPhoneHomeViewController loadView]: view = (null), superview = (null)
Oui. La vue de chargement sera toujours appelée sans tenir compte du paquet ou non. loadView aura la tâche de charger la vue pour UIViewController qui peut provenir de n'importe quelle source.
Ainsi, il faut rechercher des vues de deux façons
1. Vérifiez la propriété nibFile qui peut être réglé si vous avez appelé initWithNibName: bundle: ou si vous avez storyboard - le storyboard stocke toutes les vues créées à l'intérieur d'un fichier nib aussi
2. Si vous ne définissez pas la plume à partir de e Ensuite, vous avez l'intention de créer des vues vous-même. Dans ce cas, vous pouvez définir cette vue pour afficher la propriété d'affichage du contrôleur ultérieurement.
- 1. pourquoi il y a peu de projets sans fichier nib
- 2. UIView réutilisable en tant que fichier nib
- 3. quoi appeler viewDidLoad ou loadview
- 4. Méthode ne sera jamais appelé
- 5. TaskScheduler.UnobservedTaskException ne sera jamais appelé
- 6. iOS7 Afficher les déplacements sous les barres d'état/nav lorsque loadView a appelé à nouveau
- 7. Comment déclarer un fichier Nib?
- 8. viewDidLoad non appelé lors de l'utilisation de loadView
- 9. onIabPurchaseFinishedListener ne sera jamais appelé
- 10. Comment définir le propriétaire de mon fichier nib sur un objet dans un autre fichier nib?
- 11. Comment sera appelé en premier?
- 12. À quelle fréquence un vertex shader sera-t-il appelé?
- 13. Charger la vue avec le fichier nib d'un autre fichier nib
- 14. Conversion de fichier XML en fichier Nib?
- 15. loadView EXC_BAD_ACCESS
- 16. Fichier nib verrou XCode4
- 17. UINavigationController commençant dans un autre fichier nib?
- 18. viewDidLoad(), LoadView()
- 19. objets sur un Accès fichier nib à partir d'un autre fichier nib
- 20. ASP.NET HttpHandler pas appelé, sauf s'il y a une session
- 21. Service.onUnbind() appelé même s'il y a des clients actifs?
- 22. Est-ce que a + = 1 sera plus rapide que a = a + 1 en Python?
- 23. lorsqu'un compositeur dans un lib sera appelé dans des rails
- 24. Fichier nib-in-app-purchase?
- 25. Boucle infinie lors de l'utilisation de loadView
- 26. si un contrôleur de vue a été déchargé en raison de la faible pression de la mémoire, loadView sera-t-il appelé à nouveau une fois qu'il sera à nouveau affiché?
- 27. App OnStartup ne sera jamais appelé
- 28. netStatusHandler ne sera jamais appelé (Flash CS5)
- 29. loadView et écran noir
- 30. quand [UIViewController disablesAutomaticKeyboardDismissal] sera-t-il appelé?
Pour votre information, vous devez marquer la réponse que vous préférez comme acceptée. –