Comment l'enfant-vue-contrôleur peut utiliser la méthode définie dans le Parentviewcontroller
J'ai une situation où l'enfant-vue-contrôleur est d'essayer d'affichage multiple affichage de contrôleur et tout en faisant cela, l'enfant-vue-contrôleur a besoin d'accéder à play pause de la méthode d'action de la société mère-vue-contrôleur. Comment cela peut être réalisé que play pause méthode d'action qui consiste à mettre en pause le lecteur audio, la pause de la minuterie et de la pause de la couche:auto.vue.la couche est définie dans la vue parent contrôleur peut être utilisé par childviewcontroller.
J'apprécierai beaucoup pour toutes sortes d'aider à les résoudre.
Grâce
OriginalL'auteur user1452248 | 2013-01-12
Vous devez vous connecter pour publier un commentaire.
Vous pouvez accéder à la vue du contrôleur de parent avec le
parentViewController
propriété.Cependant, cela dépend de la relation entre votre point de vue contrôleurs. D'après votre question, j'ai déduit que vous aviez une relation parent-enfant avec plusieurs enfants, mais s'il vous plaît corrigez-moi si je me trompe! C'est très différent d'un modal-vue-contrôleur de présentation, dans lequel un seul-vue-contrôleur est présenté et il demande de l'utilisateur attention immédiate.
Explication:
Il semble y avoir une certaine confusion à propos de la différence entre le
parentViewController
etpresentingViewController
propriétés sur UIViewController. Il y a deux point de vue différent contrôleur de relations, dont chacune s'appliquant à l'une de ces propriétés.Si vous souhaitez ajouter plusieurs vue de contrôleurs de vues comme des sous-vues d'un parent-vue-contrôleur, vous utilisez - vue-contrôleur de confinement. Dans cette situation, les avis ajouté que les sous-vues (les enfants) de la vue parent contrôleur sera de retour le parent-vue-contrôleur (qui contrôle le superview des enfants; la vue parent) lorsque le
parentViewController
de la propriété est accessible. Dans cette situation, lepresentingViewController
propriété renvoienull
.Par exemple, dans la vue parent contrôleur:
A l'inverse, si vous souhaitez tout simplement pour présenter un seul, modal-vue-contrôleur (une situation plus fréquente que l'un-à-plusieurs relation parent-enfant-dessus), la
presentingViewController
propriété est utilisée.Par exemple, dans la présentation de view controller:
Bien que
presentingViewController
peut être vu plus souvent en raison de la prévalence de la modale de la vue modèle de contrôleur dans iOS, le point de vue du contrôleur de confinement de la relation parent-enfant des contrôleurs de vue est tout à fait légitime, et leparentViewController
etchildViewController
propriétés d'un UIViewController ont pas été abandonnée depuis iOS 5, leur utilisation a juste changé. Vous pouvez lire cet extrait de la documentation:parentViewController
est obsolète.parentViewController
n'est pas déconseillée. Son utilisation a changé dans iOS 5, mais elle a toujours un but précis. Vous pouvez examiner une question précédente sur un Débordement de Pile de demander à propos de-vue-contrôleur de confinement (dans lequel le parentViewController propriété est utilisée, par opposition à presentingViewController), qui semble être ce que l'OP a été de demander à propos, à ce lien: stackoverflow.com/questions/8379759/...Mon erreur, j'ai mal lu! Je vais prendre votre downvote loin, et upvote votre réponse à votre problème.
Haha je l'apprécie, ces points d'accès Internet sont les meilleurs!
OriginalL'auteur eric.mitchell
Chaque vue-contrôleur a une propriété appelée
presentingViewController
(si ViewController1 présente modal présente ViewController2, ViewController1 est ViewController2 depresentingViewController
).Une autre option est d'utiliser
NSNotificationCenter
. Vous pouvez facilement appeler le parent vue du contrôleur de la méthode de n'importe où dans l'application.ParentViewController.m
ChildViewController.m
Pouvez-vous préciser le problème?
pas de problème, j'ai été en offrant une autre option. Vous pouvez imaginer votre répondeur de la chaîne, comme une autre façon de déléguer les appels de méthode, dans ce cas, le délégué est un objet vers le haut le répondeur de la chaîne (vous n'avez pas de soins). Cela ne nécessite aucune connaissance de votre contenant de vue du contrôleur, et ne nécessite pas de pré-arrangement (l'ajout d'une notification d'observateur)
aussi, je remarque que
UIResponder
manqueNSResponder
's-tryToPerform:with:
... Qui est facilement ajoutés via une catégorie.Jack, vous êtes incorrect.
parentViewController
n'a pas été abandonné dans iOS 5. La relation parent-enfant et de la présentation-présenté relation sont deux choses complètement différentes-vue-contrôleur les relations. La relation parent-enfant est utilisé lorsqu'un ou plusieurs contrôleurs de vue sont ajoutés à l'un des parents-vue-contrôleur, comme des enfants. Lorsqu'une vue contrôleur présente une vue unique contrôleur de modal, vous avez une présentation présenté relation. Documentation: developer.apple.com/library/ios/#documentation/uikit/reference/...OriginalL'auteur Jack
À
ParentViewController.h
À
ParentViewController.m
À
IBAction
de Bouton de Jeu de l'enfant-vue-contrôleur le faire:OriginalL'auteur Arben Pnishi
Vous pouvez accéder à la Mère de l'Enfant, même si le parent a été
UINavigationController
OUUIViewController
utilisant les éléments suivants:et vous pouvez aller vers le haut, comme cette
OriginalL'auteur Abo3atef