我有一个自定义UITableViewCell
,其中包含一个名为customCell.m
的类。 (我没有使用xib。)在单元格中有一个按钮。有没有办法在mainVC.m
文件上创建按钮操作,与customCell.m
相对应?
更新
这是我尝试实现的代码。我做的是,我从mainVC.m
调用了一个方法。
CustomCell.m
- (IBAction)myButton:(id)sender
{
CategorieViewController *mainVC = [[CategorieViewController alloc] init];
[mainVC myMethod];
}
MainVC.m
- (void)myMethod:(id)sender
{
UITableViewCell *clickedCell = (UITableViewCell *)[[[sender superview] superview] superview];
NSIndexPath *clickedButtonPath = [self.myTableView indexPathForCell:clickedCell];
NSLog(@"%@", clickedButtonPath);
}
CategorieViewController myMethod]:无法识别的选择器发送到实例0x7fd2dbd52a00
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [CategorieViewController myMethod]:无法识别的选择器发送到实例0x7fd2dbd52a00'
答案 0 :(得分:3)
您正在调用myMethod
,但该方法实际上是myMethod:
并将发件人作为参数。尝试更改:
[mainVC myMethod];
为:
[mainVC myMethod:sender];
此外,您当前传递给myMethod:
作为参数的任何发件人都不会属于mainVC
的tableview,因为您正在创建一个全新的CategorieViewController
实例来执行从未加载方法调用及其表。
假设MainVC
是可见的视图控制器,您可以更改:
CategorieViewController *mainVC = [[CategorieViewController alloc] init];
为:
UINavigationController *nav = (UINavigationController*)self.window.rootViewController;
CategorieViewController *mainVC = (CategorieViewController*)nav.visibleViewController;
使用加载的tableview获取当前MainVC
实例。