iPhone: Quelle est l'utilisation correcte de viewDidDisappear?
Je suis encore très nouveau pour Objective-C, et je me demandais quelque chose au sujet de viewDidDisappear.
J'ai une application qui joue un son (à l'aide de AVAudioPlayer), et je veux arrêter le son lors de l'affichage est commuté.
Si je fais cela, de mon point de vue contrôleur de mise en œuvre:
- (void)viewDidDisappear:(BOOL)animated {
[self.audioPlayer stop];
}
il fonctionne très bien. Mais le petit programmeur dans mon cerveau est en train de dire que je ne les utilise pas correctement.
Je suis assez sûr que vous êtes censé APPELER viewDidDisappear avec un argument booléen, plutôt que de simplement préciser (BOOL)animés; en outre, il serait agréable d'avoir un peu d'animation dans mon point de vue de commutation... là encore, ce pourrait être une toute autre discussion!
Donc, ce que je fais mal, et comment pourrais-je les utiliser correctement? Dois-je avoir le lien de l'appel d'un bouton d'action? Où est le bon jeu pour réellement déclarer la fonction elle-même?
Merci.
source d'informationauteur seeafish
Vous devez vous connecter pour publier un commentaire.
- Je mettre en œuvre
viewDidDisappear:(BOOL)animated
LARGEMENTavecviewWillAppear
viewWillDisappear
etviewWillDisappear
La raison principale pour mettre en œuvre cette méthode est de faire de votre point de vue contrôleur pour faire quelque chose à l'événement, telles queviewDidDisappear
Vous n'appelez pas cette méthode, mais votre application fera appel à votre vue-contrôleur de faire ce qui est mis en œuvre. Depuis c'est la méthode héritée, aussi longtemps que vous vous assurez que tous les hérité de la mise en œuvre de la super-classe peut être fait, il est formidable pour mettre en œuvreviewDidDisappear
. Donc, je vous suggère de changer votre code comme ceci:- (void)viewDidDisappear:(BOOL)animated
est une déclaration de méthode, pas un appel de toute sorte. La méthode elle-même est appelé par UIKit de visualiser les contrôleurs sont manipulés; vous n'avez pas besoin d'appeler vous-même, sauf si vous écrivez votre propre code qui permet d'afficher les contrôleurs apparaissent et disparaissent en manipulant directement les opinions qu'ils ont le contrôle (par exemple, si vous avez été la réécriture UINavigationController pour une certaine raison).Vous faites quelque chose de mal, si: vous devez appeler
[super viewDidDisappear:animated]
quelque part dans votre mise en œuvre, ou les choses peuvent se briser.Le "petit programmeur" la voix dans votre esprit est sans doute le plus utilisé de la procédure de codage, où vous appelez l'OS et lui dire quoi faire. Cocoa Touch utilise plutôt un événement piloté par le paradigme, où votre programme de routines (méthodes) que le système d'exploitation(cadre)les appels quand il est bon et prêt. viewDidDisappear est l'une de ces routines. Juste s'asseoir serré, et d'attendre pour le système d'exploitation de l'appeler (en supposant que vous avez mis tout en place correctement.)
viewDidDisappear:
est une méthode facultative que votre vue peut utiliser pour exécuter du code personnalisé lorsque la vue n'est en effet disparaître. Vous n'êtes pas tenus d'avoir dans votre vue et votre code doit (presque?) ne jamais avoir besoin de l'appeler.