0

Ich habe folgende Ansicht Hierarchie: Navigation Controller, drinnen drängte ich einen anderen View-Controller, der UITableView mit benutzerdefinierten UIButtons in den Zellen enthält. Ich habe einen anderen View-Controller (MyCustomViewController2), den ich vor allem mit Animation anzeigen möchte. Aber ich bin verwirrt mit dieser Hierarchie und ich kann nicht - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event Methode in meiner benutzerdefinierten UIButton-Klasse überschreiben. Der Code, den ich bis jetzt gekommen bin, ist:Ziel C: Wie zeige ich den View Controller aus der benutzerdefinierten UIButton-Klasse an?

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

Aber es ist so schlecht! Und ich habe keine Animationen und ich sollte es löschen, um zu entfernen ... Könnte jemand mir bitte eine helfende Hand geben?

Antwort

0

It's highly recommended not to subclass a UIButton. Also ich würde nicht.

Aber da UIButton eine Unterklasse von UIControl ist, können Sie diese Methode direkt verwenden können:

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

Beispiel in Code wie folgt aussehen könnte: auf das Ziel

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

Dies wird sich (Selbst) für eine bestimmte Methode (showOtherVC), wenn der Benutzer den Finger von der Taste abhebt.

Sie könnten dann haben die aktuellen View-Controller die neuen präsentieren modal als Beispiel diese UIViewController Methode:

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

Lesen Sie mehr auf UIControl hier: UIControl Documentation

Und anderen UIViewController modalen Übergang überprüfen Stile hier: UIViewController Documentation