0

У меня есть следующая иерархия представлений: контроллер навигации, внутри него Я нажал еще один контроллер представления, который содержит UITableView с пользовательскими UIButtons в ячейках. У меня есть еще один контроллер представления (MyCustomViewController2), который я хочу показать выше всего этого с помощью анимации. Но я смущен этой иерархией, и я не знаю, как переписать метод - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event в свой пользовательский класс UIButton. Код, который я зашел до сих пор:Цель C: Как показать контроллер вида из пользовательского класса UIButton?

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

Но это так плохо! И у меня нет анимации, и я должен удалить ее, чтобы ее удалить ... Может, кто-нибудь даст мне руку помощи, пожалуйста?

ответ

0

It's highly recommended not to subclass a UIButton. Так что я бы не стал.

Но поскольку UIButton подкласс UIControl, вы можете использовать этот метод непосредственно:

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

Пример в коде может выглядеть следующим образом:

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

Это будет смотреть на цель (self) для конкретного метода (showOtherVC), когда пользователь поднимает палец с кнопки.

Вы могли бы иметь текущий View Controller представит новый модально, используя этот метод UIViewController как пример:

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

Подробнее о UIControl здесь: UIControl Documentation

И проверить другой переход UIViewController модальный стилей здесь: UIViewController Documentation

Смежные вопросы