我有以下视图层次结构:导航控制器,在其中我推动了另一个视图控制器,其中包含单元格中带有自定义UIButton的UITableView。我有另一个视图控制器(MyCustomViewController2),我想用动画显示所有这些东西。但我对此层次结构感到困惑,我不知道如何在自定义UIButton类中覆盖- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
方法。我到目前为止的代码是:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
MyCustomViewController2 *myVC = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"MyVC"];
[self.window addSubview: myVC.view];
}
但它太糟糕了!而且我没有任何动画,我应该将其删除以删除...请问有人伸出援助之手吗?
答案 0 :(得分: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];
当用户从按钮上抬起手指时,这将查看特定方法(showOtherVC)的目标(self)。
然后,您可以使用此UIViewController方法将当前View Controller以模态方式呈现新模式:
-(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