Je travaille sur le cours CS193p Stanford iOS et j'en ai presque fini avec l'affectation 3 - dans laquelle je convertis la calculatrice graphique en une application universelle pour iPad. L'application dessine un graphique lorsqu'un programme (par exemple "x + 3") est entré dans la calculatrice, puis l'utilisateur appuie sur un bouton graphique. Sur l'iPhone, je simplement segued lorsque le bouton graphique a été pressé, mais l'iPad, j'ai un UISplitViewController que je mis en place une action cible à partir du bouton Graphique:iOS La méthode IBAction n'est jamais appelée
- (IBAction)ipadGraphPressed:(UIButton *)sender {
if ([self splitViewGraphViewController]) {
[[self.splitViewController.viewControllers lastObject] setProgram:self.brain.program];
}
}
Cela appelle setProgram:
dans le GraphViewController, qui appelle ensuite setNeedsDisplay:
sur GraphView et dessine le graphique.
À titre de comparaison, voici la méthode de Segue qui fonctionne sur l'iPhone:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
[segue.destinationViewController setProgram:self.brain.program];
}
Je suis très sûr que la connexion est établie entre le bouton et son mode d'action, mais quand je lance l'application, cette action la méthode n'est jamais appelée lorsque le bouton est enfoncé. Y at-il autre chose à vérifier pour s'assurer que la méthode est appelée?
Si la méthode d'action n'est pas appelée lorsque le bouton est enfoncé, alors d'une manière ou d'une autre le 'IBAction' n'est pas lié au bouton correctement. Etes-vous sûr de connecter l'IBAction à l'événement Touch up inside et de créer votre contrôleur de vue de manière à ce que les connexions soient automatiquement établies pour vous au moment de l'instanciation? – aroth
Je suis certain que l'événement Touch Up Inside est connecté. En ce qui concerne la configuration du contrôleur de vue, je ne suis pas si sûr. L'iPhone segue fonctionne en définissant la propriété du programme GraphViewController, et j'ai donc fait exactement la même chose dans la méthode d'action. J'ai supposé que cela fonctionnerait de la même manière. – Paul
Vérifiez d'abord que ce bouton a son action connectée à ipadGraphPressed. Puis ajoutez NSLog (@ "% @", expéditeur); à l'intérieur de la méthode, appuyez sur le bouton et voir si le bouton fonctionne ou non. – Pochi