0

J'ai la hiérarchie de vue suivante: contrôleur de navigation, à l'intérieur j'ai poussé un autre contrôleur de vue qui contient UITableView avec UIButtons personnalisé dans les cellules. J'ai un autre contrôleur de vue (MyCustomViewController2), que je veux montrer au-dessus de tout cela avec l'animation. Mais je suis confus avec cette hiérarchie et je ne sais pas comment remplacer la méthode - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event dans ma classe UIButton personnalisée. Le code que je suis venu jusqu'ici est:Objectif C: Comment afficher le contrôleur de vue à partir de la classe UIButton personnalisée?

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    MyCustomViewController2 *myVC = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"MyVC"]; 
    [self.window addSubview: myVC.view]; 
} 

Mais c'est si mauvais! Et je n'ai aucune animation et je devrais la supprimer pour la retirer ... Quelqu'un pourrait-il m'aider?

Répondre

0

It's highly recommended not to subclass a UIButton. Donc, je ne le ferais pas.

Mais depuis UIButton est une sous-classe de UIControl, vous pouvez utiliser cette méthode directement:

- (void)addTarget:(id)target 
      action:(SEL)action 
forControlEvents:(UIControlEvents)controlEvents 

exemple dans le code pourrait ressembler à ceci:

[self.myButton addTarget:self action:@selector(showOtherVC) forControlEvents: UIControlEventTouchUpInside]; 

Cela se penchera sur la cible (self) pour une méthode particulière (showOtherVC) lorsque l'utilisateur lève son doigt du bouton.

Vous pouvez alors le courant View Controller présente le nouveau en utilisant de façon modale cette méthode UIViewController comme exemple:

-(void)showOtherVC 
{ 
    MyCustomViewController2 *myVC = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"MyVC"]; 
    [self presentViewController:myVC animated:true completion:nil]; 
} 

En savoir plus sur UIControl ici: UIControl Documentation

Et vérifier autre transition modale UIViewController styles ici: UIViewController Documentation