2010-08-08 8 views
2

Vous rencontrez toujours des problèmes avec cette langue.Comment communiquer entre des objets

Ok, disons que j'ai deux objets. Le premier est mon délégué d'application, le second est une vue personnalisée contenant les différents boutons qui composent le menu principal. Quand un bouton est cliqué, c'est le menu qui répond. Cependant, j'ai besoin d'utiliser certaines variables d'instance dans le délégué d'application (comme la fenêtre) afin d'implémenter les changements appropriés. Dans ce cas, je veux que le menu principal soit supprimé et remplacé par une nouvelle vue. En d'autres termes, le menu principal doit déclencher une méthode conservée dans le délégué de l'application.

Alors, comment dois-je m'y prendre?

Répondre

5

J'ai publié un billet sur mon site Web, un article qui explique le processus de la manière la plus simple possible pour décrire la mise en place d'un délégué.

http://www.dosomethinghere.com/2009/07/18/setting-up-a-delegate-in-the-iphone-sdk/

+0

Brillant! Merci BP, ce blog est exactement ce que je cherchais! Je ne peux vraiment pas imaginer pourquoi il n'y a pas un tutoriel de cette nature spécifique sur les propres fichiers d'Apple, alors que c'est une partie si fondamentale de la conception d'objets personnalisés. – Ash

+0

Pas de problème, parfois je trouve que la documentation d'Apple peut être un peu longue et difficile à passer quand vous avez besoin de quelque chose de spécifique. Modifiez le code, modifiez-le, amusez-vous avec, faites-en quelque chose d'inhabituel et d'intéressant. Et vous pouvez toujours cliquer sur la petite coche à côté de ma réponse ...: D –

3

La méthode préférée consiste à créer un protocole de délégué pour votre contrôleur de vue. Votre délégué d'application peut ensuite implémenter ce protocole et agir au nom de votre contrôleur de vue.

Consultez la partie sur Delegation in the Cocoa Fundamentals Guide. Lisez également les documents sur Modal View Controllers, car cela est assez similaire à ce que vous essayez de faire. Il y a aussi des exemples de code.

+0

Merci pour l'information jusqu'à présent. J'ai déjà vu ces documents, et je soupçonnais que les protocoles étaient la voie à suivre. Cependant, j'ai de la difficulté à trouver une bonne source pour créer des protocoles personnalisés. Par exemple, où devraient-ils être déclarés, comment devraient-ils être déclarés, et comment y répondez-vous quand vous les avez? C'est un véritable essai de trouver quelque chose de spécifique dans la fonction de recherche dans le guide du développeur à travers le volume de matériel. Quelqu'un peut-il suggérer un bon tutoriel pour la création de protocole? – Ash

+0

Le lien dans la réponse de BP décrit les étapes nécessaires en détail. Vous pouvez également consulter ce billet de blog: http://jonsterling.github.com/2009/08/01/using-custom-delegates-in-objective-c.html – ksoderstrom

+0

Ash: Le document de langage de programmation Objective-C décrit la syntaxe des protocoles en détail. http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html Vous implémentez les méthodes de la même manière que vous appliquez toutes les autres méthodes; déclarer que votre classe est conforme à un protocole est simplement une promesse que vous allez implémenter toutes les méthodes que ce protocole vous oblige à implémenter. –

Questions connexes