2009-09-13 8 views
0

J'ai un bouton que je crée dans un UIViewController comme ceci:Appel d'un UIViewController à partir d'une méthode touchUpInside de UIControl

TOLoginButton* button = [[[TOLoginButton alloc] initWithFrame:CGRectMake(60,180,200,40)] autorelease]; 

[self.view addSubview:button]; 

Le bouton est un UIControl et je suis en train d'appeler un autre UIViewController de l'intérieur la méthode touchUpInside, voici ce que j'ai, mais il ne fonctionne pas:

- (void)touchUpInside { 

    MyViewController *viewController = [[MyViewController alloc] init]; 
    [super.view addSubview:viewController.view ]; 
} 

Je suis fondamentalement d'essayer d'appeler cette viewController une fois que mon bouton.

Donc viewController1 a le bouton là-dessus et une fois que le bouton est pressé je veux faire quelque chose comme [viewController1.view addSubview:viewController2.view].

Répondre

1

en supposant que le nouveau UIViewController est plein écran, la chose habituelle à faire est

[self presentModalViewController:viewController animated:YES]; 

ou si vous utilisez un contrôleur de navigation

[self.navigationController pushViewController:viewController animated:YES]; 
+0

Le problème est que l'auto est un UIControl Alors, vous dites que vous pouvez appeler presentModalViewController sur un UIControll, car il donne des erreurs si vous le faites? – TheGambler

+0

ah, désolé, ce code était destiné à vivre dans une sous-classe UIViewController. J'ai seulement utilisé le constructeur d'interface pour ajouter des UIControls, donc je ne suis pas entièrement sûr, mais je pense que ce que vous devez faire est d'appeler [button addTarget: self action: @selector ("buttonWasPressed") pourControlEvents: UIControlEventTouchUpInside] qui dira le bouton pour exécuter la méthode "buttonWasPressed" dans votre contrôleur de vue, puis vous pouvez charger l'autre contrôleur de vue à partir de là. –

Questions connexes