2 votes

presentModalViewController de UIView

J'essaie d'appeler presentModalViewController sur un UIViewController afin de faire apparaître une "vue" du carnet d'adresses, mais je rencontre un petit problème. Le UIViewController qui "contrôle" l'application dessine simplement une vue à l'écran et laisse la vue gérer toutes les interactions avec l'utilisateur, etc. Mais maintenant, j'ai besoin d'une manière ou d'une autre de remonter jusqu'au UIViewController afin d'appeler presentModalViewController sur lui. Quelqu'un a-t-il une idée sur la façon de réaliser cela ?

Merci de votre aide !

12voto

Nick Bedford Points 3009

En supposant que l'UIView de votre contrôleur soit sous-classée, vous pouvez lui ajouter une propriété.

@interface MyView : UIView
{
    UIViewController *parentController;
}

// Don't use retain or you'll have a circular reference
@property(nonatomic, assign) UIViewController *parentController;

@end

Ensuite, dans le code de votre UIViewController, assignez self à l'élément parentController propriété.

-(void)viewDidLoad
{
    myView.parentController = self;
}

C'est ce que vous recherchiez ? La question qui se pose est de savoir pourquoi votre point de vue n'est pas le même que le vôtre. contrôleur no contrôle votre point de vue ?

0voto

Mike Abdullah Points 9464

Je suggérerais de donner à votre classe de vue personnalisée une sorte de délégué qui lui permettra de demander au délégué des informations sur le carnet d'adresses. Dans ce cas, le délégué serait le contrôleur de vue qui répondrait en affichant le sélecteur et en renvoyant le résultat.

0voto

Jason Points 11332

Votre UIView doit émettre un événement (en utilisant le modèle utilisé dans les UIButtons, etc.) vers un délégué (soit en se conformant à un protocole, soit en utilisant un sélecteur spécifique).

Si ce n'est pas possible, view.nextResponder doit être votre UIViewController, si la vue a été créée par le UIViewController.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X